From b61e7ff449fc1b0dec9461d5adee3bcee5abf4b3 Mon Sep 17 00:00:00 2001 From: Erik Larsson Date: Thu, 28 Jan 2016 08:28:53 +0100 Subject: [PATCH] Replace all le16 "or" calculations with le16_or(...). --- include/ntfs-3g/endians.h | 2 + libntfs-3g/acls.c | 4 +- libntfs-3g/attrib.c | 24 +++++----- libntfs-3g/dir.c | 2 +- libntfs-3g/efs.c | 2 +- libntfs-3g/index.c | 4 +- libntfs-3g/inode.c | 2 +- libntfs-3g/mft.c | 6 +-- libntfs-3g/security.c | 92 +++++++++++++++++++-------------------- ntfsprogs/mkntfs.c | 32 +++++++------- ntfsprogs/ntfsck.c | 2 +- ntfsprogs/ntfsfix.c | 4 +- ntfsprogs/ntfsmove.c | 2 +- ntfsprogs/ntfsresize.c | 2 +- ntfsprogs/sd.c | 8 ++-- src/lowntfs-3g.c | 2 +- src/ntfs-3g.c | 2 +- 17 files changed, 97 insertions(+), 95 deletions(-) diff --git a/include/ntfs-3g/endians.h b/include/ntfs-3g/endians.h index 58163a64..701639bb 100644 --- a/include/ntfs-3g/endians.h +++ b/include/ntfs-3g/endians.h @@ -330,4 +330,6 @@ #define le64_and(a, b) ((a) & (b)) +#define le16_or(a, b) ((a) | (b)) + #endif /* defined _NTFS_ENDIANS_H */ diff --git a/libntfs-3g/acls.c b/libntfs-3g/acls.c index 86856005..8115ff2c 100644 --- a/libntfs-3g/acls.c +++ b/libntfs-3g/acls.c @@ -2883,8 +2883,8 @@ char *ntfs_build_descr(mode_t mode, * The flag SE_DACL_PROTECTED prevents the ACL * to be changed in an inheritance after creation */ - pnhead->control = SE_DACL_PRESENT | SE_DACL_PROTECTED - | SE_SELF_RELATIVE; + pnhead->control = le16_or(SE_DACL_PRESENT, le16_or(SE_DACL_PROTECTED, + SE_SELF_RELATIVE)); /* * Windows prefers ACL first, do the same to * get the same hash value and avoid duplication diff --git a/libntfs-3g/attrib.c b/libntfs-3g/attrib.c index 014c34d2..f71402fb 100644 --- a/libntfs-3g/attrib.c +++ b/libntfs-3g/attrib.c @@ -472,10 +472,10 @@ ntfs_attr *ntfs_attr_open(ntfs_inode *ni, const ATTR_TYPES type, && (ni->vol->major_ver >= 3) && NVolCompression(ni->vol) && (ni->vol->cluster_size <= MAX_COMPRESSION_CLUSTER_SIZE)) - a->flags |= ATTR_IS_COMPRESSED; + a->flags = le16_or(a->flags, ATTR_IS_COMPRESSED); } - cs = le16_and(a->flags, ATTR_IS_COMPRESSED | ATTR_IS_SPARSE); + cs = le16_and(a->flags, le16_or(ATTR_IS_COMPRESSED, ATTR_IS_SPARSE)); /* a file may be sparse though its unnamed data is not (cf $UsnJrnl) */ if (le32_eq(na->type, AT_DATA) && na->name == AT_UNNAMED && @@ -1358,7 +1358,7 @@ static int ntfs_attr_fill_hole(ntfs_attr *na, s64 count, s64 *ofs, lcn_seek_from, DATA_ZONE); if (!rlc) goto err_out; - if (!le16_andz(na->data_flags, ATTR_COMPRESSION_MASK | ATTR_IS_SPARSE)) + if (!le16_andz(na->data_flags, le16_or(ATTR_COMPRESSION_MASK, ATTR_IS_SPARSE))) na->compressed_size += need << vol->cluster_size_bits; *rl = ntfs_runlists_merge(na->rl, rlc); @@ -3950,7 +3950,7 @@ int ntfs_non_resident_attr_record_add(ntfs_inode *ni, ATTR_TYPES type, dataruns_size = (dataruns_size + 7) & ~7; length = offsetof(ATTR_RECORD, compressed_size) + ((sizeof(ntfschar) * name_len + 7) & ~7) + dataruns_size + - (!le16_andz(flags, ATTR_IS_COMPRESSED | ATTR_IS_SPARSE) ? + (!le16_andz(flags, le16_or(ATTR_IS_COMPRESSED, ATTR_IS_SPARSE)) ? sizeof(a->compressed_size) : 0); if (ntfs_make_room_for_attr(ctx->mrec, (u8*) ctx->attr, length)) { err = errno; @@ -3964,7 +3964,7 @@ int ntfs_non_resident_attr_record_add(ntfs_inode *ni, ATTR_TYPES type, a->non_resident = 1; a->name_length = name_len; a->name_offset = cpu_to_le16(offsetof(ATTR_RECORD, compressed_size) + - (!le16_andz(flags, ATTR_IS_COMPRESSED | ATTR_IS_SPARSE) ? + (!le16_andz(flags, le16_or(ATTR_IS_COMPRESSED, ATTR_IS_SPARSE)) ? sizeof(a->compressed_size) : 0)); a->flags = flags; a->instance = m->next_attr_instance; @@ -4386,8 +4386,8 @@ int ntfs_attr_set_flags(ntfs_inode *ni, ATTR_TYPES type, const ntfschar *name, if (!ntfs_attr_lookup(type, name, name_len, CASE_SENSITIVE, 0, NULL, 0, ctx)) { /* do the requested change (all small endian le16) */ - ctx->attr->flags = le16_and(ctx->attr->flags, ~mask) - | le16_and(flags, mask); + ctx->attr->flags = le16_or(le16_and(ctx->attr->flags, ~mask), + le16_and(flags, mask)); NInoSetDirty(ni); res = 0; } @@ -4887,7 +4887,7 @@ int ntfs_attr_make_non_resident(ntfs_attr *na, * The decisions about compression can only be made when * creating/recreating the stream, not when making non resident. */ - a->flags = le16_and(a->flags, ~(ATTR_IS_SPARSE | ATTR_IS_ENCRYPTED)); + a->flags = le16_and(a->flags, ~(le16_or(ATTR_IS_SPARSE, ATTR_IS_ENCRYPTED))); if (le16_eq(le16_and(a->flags, ATTR_COMPRESSION_MASK), ATTR_IS_COMPRESSED)) { /* support only ATTR_IS_COMPRESSED compression mode */ a->compression_unit = STANDARD_COMPRESSION_UNIT; @@ -5350,7 +5350,7 @@ static int ntfs_attr_make_resident(ntfs_attr *na, ntfs_attr_search_ctx *ctx) && NVolCompression(na->ni->vol) && (na->ni->vol->cluster_size <= MAX_COMPRESSION_CLUSTER_SIZE) && !le32_andz(na->ni->flags, FILE_ATTR_COMPRESSED)) { - a->flags |= ATTR_IS_COMPRESSED; + a->flags = le16_or(a->flags, ATTR_IS_COMPRESSED); na->data_flags = a->flags; } /* @@ -5446,7 +5446,7 @@ static int ntfs_attr_update_meta(ATTR_RECORD *a, ntfs_attr *na, MFT_RECORD *m, /* Check whether attribute becomes sparse, unless check is delayed. */ if ((holes != HOLES_DELAY) && sparse - && le16_andz(a->flags, ATTR_IS_SPARSE | ATTR_IS_COMPRESSED)) { + && le16_andz(a->flags, le16_or(ATTR_IS_SPARSE, ATTR_IS_COMPRESSED))) { /* * Move attribute to another mft record, if attribute is too * small to add compressed_size field to it and we have no @@ -5478,7 +5478,7 @@ static int ntfs_attr_update_meta(ATTR_RECORD *a, ntfs_attr *na, MFT_RECORD *m, } NAttrSetSparse(na); - a->flags |= ATTR_IS_SPARSE; + a->flags = le16_or(a->flags, ATTR_IS_SPARSE); na->data_flags = a->flags; a->compression_unit = STANDARD_COMPRESSION_UNIT; /* Windows set it so, even if attribute is not actually compressed. */ @@ -5818,7 +5818,7 @@ retry: a = ctx->attr; a->allocated_size = cpu_to_sle64(na->allocated_size); spcomp = le16_and(na->data_flags, - ATTR_IS_COMPRESSED | ATTR_IS_SPARSE); + le16_or(ATTR_IS_COMPRESSED, ATTR_IS_SPARSE)); if (!le16_cmpz(spcomp)) a->compressed_size = cpu_to_sle64(na->compressed_size); if (le32_eq(na->type, AT_DATA) && (na->name == AT_UNNAMED)) { diff --git a/libntfs-3g/dir.c b/libntfs-3g/dir.c index 00ee94af..499eb3bb 100644 --- a/libntfs-3g/dir.c +++ b/libntfs-3g/dir.c @@ -1713,7 +1713,7 @@ static ntfs_inode *__ntfs_create(ntfs_inode *dir_ni, le32 securid, /* Set hard links count and directory flag. */ ni->mrec->link_count = cpu_to_le16(1); if (S_ISDIR(type)) - ni->mrec->flags |= MFT_RECORD_IS_DIRECTORY; + ni->mrec->flags = le16_or(ni->mrec->flags, MFT_RECORD_IS_DIRECTORY); ntfs_inode_mark_dirty(ni); /* Done! */ free(fn); diff --git a/libntfs-3g/efs.c b/libntfs-3g/efs.c index af9eb211..8a3af78a 100644 --- a/libntfs-3g/efs.c +++ b/libntfs-3g/efs.c @@ -423,7 +423,7 @@ int ntfs_efs_fixup_attribute(ntfs_attr_search_ctx *ctx, ntfs_attr *na) ctx->attr->data_size = cpu_to_le64(newsize); if (le64_to_cpu(ctx->attr->initialized_size) > newsize) ctx->attr->initialized_size = ctx->attr->data_size; - ctx->attr->flags |= ATTR_IS_ENCRYPTED; + ctx->attr->flags = le16_or(ctx->attr->flags, ATTR_IS_ENCRYPTED); if (close_ctx) ntfs_attr_put_search_ctx(ctx); diff --git a/libntfs-3g/index.c b/libntfs-3g/index.c index 5bcd82dc..e9fc27b5 100644 --- a/libntfs-3g/index.c +++ b/libntfs-3g/index.c @@ -1159,7 +1159,7 @@ retry : ntfs_ir_nill(ir); ie = ntfs_ie_get_first(&ir->index); - ie->ie_flags |= INDEX_ENTRY_NODE; + ie->ie_flags = le16_or(ie->ie_flags, INDEX_ENTRY_NODE); ie->length = cpu_to_le16(sizeof(INDEX_ENTRY_HEADER) + sizeof(VCN)); ir->index.ih_flags = LARGE_INDEX; @@ -1283,7 +1283,7 @@ static int ntfs_ie_add_vcn(INDEX_ENTRY **ie) if (!p) return STATUS_ERROR; - p->ie_flags |= INDEX_ENTRY_NODE; + p->ie_flags = le16_or(p->ie_flags, INDEX_ENTRY_NODE); *ie = p; return STATUS_OK; diff --git a/libntfs-3g/inode.c b/libntfs-3g/inode.c index 2926ced4..b79994ae 100644 --- a/libntfs-3g/inode.c +++ b/libntfs-3g/inode.c @@ -260,7 +260,7 @@ get_size: if (ctx->attr->non_resident) { ni->data_size = sle64_to_cpu(ctx->attr->data_size); if (!le16_andz(ctx->attr->flags, - (ATTR_IS_COMPRESSED | ATTR_IS_SPARSE))) + le16_or(ATTR_IS_COMPRESSED, ATTR_IS_SPARSE))) ni->allocated_size = sle64_to_cpu( ctx->attr->compressed_size); else diff --git a/libntfs-3g/mft.c b/libntfs-3g/mft.c index ed87a6e3..cae67278 100644 --- a/libntfs-3g/mft.c +++ b/libntfs-3g/mft.c @@ -1463,7 +1463,7 @@ found_free_rec: if (!le16_cmpz(seq_no) && !le16_eq(seq_no, const_cpu_to_le16(0xffff))) *(le16*)((u8*)m + le16_to_cpu(m->usa_ofs)) = usn; /* Set the mft record itself in use. */ - m->flags |= MFT_RECORD_IN_USE; + m->flags = le16_or(m->flags, MFT_RECORD_IN_USE); /* Now need to open an ntfs inode for the mft record. */ ni = ntfs_inode_allocate(vol); if (!ni) { @@ -1766,7 +1766,7 @@ found_free_rec: if (!le16_cmpz(seq_no) && !le16_eq(seq_no, const_cpu_to_le16(0xffff))) *(le16*)((u8*)m + le16_to_cpu(m->usa_ofs)) = usn; /* Set the mft record itself in use. */ - m->flags |= MFT_RECORD_IN_USE; + m->flags = le16_or(m->flags, MFT_RECORD_IN_USE); /* Now need to open an ntfs inode for the mft record. */ ni = ntfs_inode_allocate(vol); if (!ni) { @@ -1913,7 +1913,7 @@ bitmap_rollback: ntfs_log_debug("Eeek! Rollback failed in ntfs_mft_record_free(). " "Leaving inconsistent metadata!\n"); sync_rollback: - ni->mrec->flags |= MFT_RECORD_IN_USE; + ni->mrec->flags = le16_or(ni->mrec->flags, MFT_RECORD_IN_USE); ni->mrec->sequence_number = old_seq_no; ntfs_inode_mark_dirty(ni); errno = err; diff --git a/libntfs-3g/security.c b/libntfs-3g/security.c index c3e449a2..fee221a7 100644 --- a/libntfs-3g/security.c +++ b/libntfs-3g/security.c @@ -3378,7 +3378,7 @@ int ntfs_sd_add_everyone(ntfs_inode *ni) return -1; sd->revision = SECURITY_DESCRIPTOR_REVISION; - sd->control = SE_DACL_PRESENT | SE_SELF_RELATIVE; + sd->control = le16_or(SE_DACL_PRESENT, SE_SELF_RELATIVE); sid = (SID*)((u8*)sd + sizeof(SECURITY_DESCRIPTOR_ATTR)); sid->revision = SID_REVISION; @@ -3948,9 +3948,9 @@ static le32 build_inherited_id(struct SECURITY_CONTEXT *scx, pnhead = (SECURITY_DESCRIPTOR_RELATIVE*)newattr; pnhead->revision = SECURITY_DESCRIPTOR_REVISION; pnhead->alignment = 0; - pnhead->control = le16_and(pphead->control, - (SE_DACL_AUTO_INHERITED | SE_SACL_AUTO_INHERITED)) - | SE_SELF_RELATIVE; + pnhead->control = le16_or(le16_and(pphead->control, + le16_or(SE_DACL_AUTO_INHERITED, SE_SACL_AUTO_INHERITED)), + SE_SELF_RELATIVE); pos = sizeof(SECURITY_DESCRIPTOR_RELATIVE); /* * locate and inherit DACL @@ -3967,7 +3967,7 @@ static le32 build_inherited_id(struct SECURITY_CONTEXT *scx, if (aclsz) { pnhead->dacl = cpu_to_le32(pos); pos += aclsz; - pnhead->control |= SE_DACL_PRESENT; + pnhead->control = le16_or(pnhead->control, SE_DACL_PRESENT); } } /* @@ -3984,7 +3984,7 @@ static le32 build_inherited_id(struct SECURITY_CONTEXT *scx, if (aclsz) { pnhead->sacl = cpu_to_le32(pos); pos += aclsz; - pnhead->control |= SE_SACL_PRESENT; + pnhead->control = le16_or(pnhead->control, SE_DACL_PRESENT); } } /* @@ -4611,21 +4611,21 @@ static BOOL feedsecurityattr(const char *attr, u32 selection, ok = FALSE; } else { if (selection & OWNER_SECURITY_INFORMATION) - control |= le16_and(phead->control, SE_OWNER_DEFAULTED); + control = le16_or(control, le16_and(phead->control, SE_OWNER_DEFAULTED)); if (selection & GROUP_SECURITY_INFORMATION) - control |= le16_and(phead->control, SE_GROUP_DEFAULTED); + control = le16_or(control, le16_and(phead->control, SE_GROUP_DEFAULTED)); if (selection & DACL_SECURITY_INFORMATION) - control |= le16_and(phead->control, - SE_DACL_PRESENT - | SE_DACL_DEFAULTED - | SE_DACL_AUTO_INHERITED - | SE_DACL_PROTECTED); + control = le16_or(control, le16_and(phead->control, + le16_or(SE_DACL_PRESENT, + le16_or(SE_DACL_DEFAULTED, + le16_or(SE_DACL_AUTO_INHERITED, + SE_DACL_PROTECTED))))); if (selection & SACL_SECURITY_INFORMATION) - control |= le16_and(phead->control, - SE_SACL_PRESENT - | SE_SACL_DEFAULTED - | SE_SACL_AUTO_INHERITED - | SE_SACL_PROTECTED); + control = le16_or(control, le16_and(phead->control, + le16_or(SE_SACL_PRESENT, + le16_or(SE_SACL_DEFAULTED, + le16_or(SE_SACL_AUTO_INHERITED, + SE_SACL_PROTECTED))))); /* * copy header and feed new flags, even if no detailed data */ @@ -4733,18 +4733,18 @@ static BOOL mergesecurityattr(ntfs_volume *vol, const char *oldattr, } else targhead->dacl = const_cpu_to_le32(0); if (selection & DACL_SECURITY_INFORMATION) { - control |= le16_and(newhead->control, - SE_DACL_PRESENT - | SE_DACL_DEFAULTED - | SE_DACL_PROTECTED); + control = le16_or(control, le16_and(newhead->control, + le16_or(SE_DACL_PRESENT, + le16_or(SE_DACL_DEFAULTED, + SE_DACL_PROTECTED)))); if (!le16_andz(newhead->control, SE_DACL_AUTO_INHERIT_REQ)) - control |= SE_DACL_AUTO_INHERITED; + control = le16_or(control, SE_DACL_AUTO_INHERITED); } else - control |= le16_and(oldhead->control, - SE_DACL_PRESENT - | SE_DACL_DEFAULTED - | SE_DACL_AUTO_INHERITED - | SE_DACL_PROTECTED); + control = le16_or(control, le16_and(oldhead->control, + le16_or(SE_DACL_PRESENT, + le16_or(SE_DACL_DEFAULTED, + le16_or(SE_DACL_AUTO_INHERITED, + SE_DACL_PROTECTED))))); /* * copy new SACL if selected * or keep old SACL if any @@ -4765,18 +4765,18 @@ static BOOL mergesecurityattr(ntfs_volume *vol, const char *oldattr, } else targhead->sacl = const_cpu_to_le32(0); if (selection & SACL_SECURITY_INFORMATION) { - control |= le16_and(newhead->control, - SE_SACL_PRESENT - | SE_SACL_DEFAULTED - | SE_SACL_PROTECTED); + control = le16_or(control, le16_and(newhead->control, + le16_or(SE_SACL_PRESENT, + le16_or(SE_SACL_DEFAULTED, + SE_SACL_PROTECTED)))); if (!le16_andz(newhead->control, SE_SACL_AUTO_INHERIT_REQ)) - control |= SE_SACL_AUTO_INHERITED; + control = le16_or(control, SE_SACL_AUTO_INHERITED); } else - control |= le16_and(oldhead->control, - SE_SACL_PRESENT - | SE_SACL_DEFAULTED - | SE_SACL_AUTO_INHERITED - | SE_SACL_PROTECTED); + control = le16_or(control, le16_and(oldhead->control, + le16_or(SE_SACL_PRESENT, + le16_or(SE_SACL_DEFAULTED, + le16_or(SE_SACL_AUTO_INHERITED, + SE_SACL_PROTECTED))))); /* * copy new OWNER if selected * or keep old OWNER if any @@ -4797,9 +4797,9 @@ static BOOL mergesecurityattr(ntfs_volume *vol, const char *oldattr, } else targhead->owner = const_cpu_to_le32(0); if (selection & OWNER_SECURITY_INFORMATION) - control |= le16_and(newhead->control, SE_OWNER_DEFAULTED); + control = le16_or(control, le16_and(newhead->control, SE_OWNER_DEFAULTED)); else - control |= le16_and(oldhead->control, SE_OWNER_DEFAULTED); + control = le16_or(control, le16_and(oldhead->control, SE_OWNER_DEFAULTED)); /* * copy new GROUP if selected * or keep old GROUP if any @@ -4809,13 +4809,13 @@ static BOOL mergesecurityattr(ntfs_volume *vol, const char *oldattr, if (selection & GROUP_SECURITY_INFORMATION) { offgroup = le32_to_cpu(newhead->group); pgroup = (const SID*)&newattr[offgroup]; - control |= le16_and(newhead->control, - SE_GROUP_DEFAULTED); + control = le16_or(control, le16_and(newhead->control, + SE_GROUP_DEFAULTED)); } else { offgroup = le32_to_cpu(oldhead->group); pgroup = (const SID*)&oldattr[offgroup]; - control |= le16_and(oldhead->control, - SE_GROUP_DEFAULTED); + control = le16_or(control, le16_and(oldhead->control, + SE_GROUP_DEFAULTED)); } size = ntfs_sid_size(pgroup); memcpy(&target[pos], pgroup, size); @@ -4824,9 +4824,9 @@ static BOOL mergesecurityattr(ntfs_volume *vol, const char *oldattr, } else targhead->group = const_cpu_to_le32(0); if (selection & GROUP_SECURITY_INFORMATION) - control |= le16_and(newhead->control, SE_GROUP_DEFAULTED); + control = le16_or(control, le16_and(newhead->control, SE_GROUP_DEFAULTED)); else - control |= le16_and(oldhead->control, SE_GROUP_DEFAULTED); + control = le16_or(control, le16_and(oldhead->control, SE_GROUP_DEFAULTED)); targhead->revision = SECURITY_DESCRIPTOR_REVISION; targhead->alignment = 0; targhead->control = control; diff --git a/ntfsprogs/mkntfs.c b/ntfsprogs/mkntfs.c index 5967b777..34a20673 100644 --- a/ntfsprogs/mkntfs.c +++ b/ntfsprogs/mkntfs.c @@ -1477,7 +1477,7 @@ static int insert_positioned_attr_in_mft_record(MFT_RECORD *m, err = -EOPNOTSUPP; goto err_out; } - if (!le16_andz(flags, ATTR_IS_ENCRYPTED | ATTR_IS_SPARSE)) { + if (!le16_andz(flags, le16_or(ATTR_IS_ENCRYPTED, ATTR_IS_SPARSE))) { ntfs_log_error("Encrypted/sparse attributes not supported.\n"); err = -EOPNOTSUPP; goto err_out; @@ -1566,7 +1566,7 @@ static int insert_positioned_attr_in_mft_record(MFT_RECORD *m, ntfs_log_error("Unknown compression format. Reverting " "to standard compression.\n"); a->flags = le16_and(a->flags, ~ATTR_COMPRESSION_MASK); - a->flags |= ATTR_IS_COMPRESSED; + a->flags = le16_or(a->flags, ATTR_IS_COMPRESSED); } a->compression_unit = 4; inited_size = val_len; @@ -1668,7 +1668,7 @@ static int insert_non_resident_attr_in_mft_record(MFT_RECORD *m, err = -EOPNOTSUPP; goto err_out; } - if (!le16_andz(flags, ATTR_IS_ENCRYPTED | ATTR_IS_SPARSE)) { + if (!le16_andz(flags, le16_or(ATTR_IS_ENCRYPTED, ATTR_IS_SPARSE))) { ntfs_log_error("Encrypted/sparse attributes not supported.\n"); err = -EOPNOTSUPP; goto err_out; @@ -1763,7 +1763,7 @@ static int insert_non_resident_attr_in_mft_record(MFT_RECORD *m, ntfs_log_error("Unknown compression format. Reverting " "to standard compression.\n"); a->flags = le16_and(a->flags, ~ATTR_COMPRESSION_MASK); - a->flags |= ATTR_IS_COMPRESSED; + a->flags = le16_or(a->flags, ATTR_IS_COMPRESSED); } a->compression_unit = 4; /* FIXME: Set the compressed size. */ @@ -2524,7 +2524,7 @@ static int upgrade_to_large_index(MFT_RECORD *m, const char *name, } /* Now fixup empty index root with pointer to index allocation VCN 0. */ r->index.ih_flags = LARGE_INDEX; - re->ie_flags |= INDEX_ENTRY_NODE; + re->ie_flags = le16_or(re->ie_flags, INDEX_ENTRY_NODE); if (le16_to_cpu(re->length) < sizeof(INDEX_ENTRY_HEADER) + sizeof(VCN)) re->length = cpu_to_le16(le16_to_cpu(re->length) + sizeof(VCN)); r->index.index_length = cpu_to_le32(le32_to_cpu(r->index.entries_offset) @@ -4437,7 +4437,7 @@ static BOOL mkntfs_create_root_structures(void) m = (MFT_RECORD*)(g_buf + i * g_vol->mft_record_size); if (i < 16 || i > 23) { m->mft_record_number = cpu_to_le32(i); - m->flags |= MFT_RECORD_IN_USE; + m->flags = le16_or(m->flags, MFT_RECORD_IN_USE); ntfs_bit_set(g_mft_bitmap, 0LL + i, 1); } file_attrs = FILE_ATTR_HIDDEN | FILE_ATTR_SYSTEM; @@ -4476,7 +4476,7 @@ static BOOL mkntfs_create_root_structures(void) extend_ref = MK_LE_MREF(11,11); ntfs_log_verbose("Creating root directory (mft record 5)\n"); m = (MFT_RECORD*)(g_buf + 5 * g_vol->mft_record_size); - m->flags |= MFT_RECORD_IS_DIRECTORY; + m->flags = le16_or(m->flags, MFT_RECORD_IS_DIRECTORY); m->link_count = cpu_to_le16(le16_to_cpu(m->link_count) + 1); err = add_attr_file_name(m, root_ref, 0LL, 0LL, FILE_ATTR_HIDDEN | FILE_ATTR_SYSTEM | @@ -4724,7 +4724,7 @@ static BOOL mkntfs_create_root_structures(void) * odd and we failed to set the device block size to the sector * size, hence we schedule chkdsk to create it. */ - volume_flags |= VOLUME_IS_DIRTY; + volume_flags = le16_or(volume_flags, VOLUME_IS_DIRTY); } free(bs); /* @@ -4768,7 +4768,7 @@ static BOOL mkntfs_create_root_structures(void) /* create $Secure (NTFS 3.0+) */ ntfs_log_verbose("Creating $Secure (mft record 9)\n"); m = (MFT_RECORD*)(g_buf + 9 * g_vol->mft_record_size); - m->flags |= MFT_RECORD_IS_VIEW_INDEX; + m->flags = le16_or(m->flags, MFT_RECORD_IS_VIEW_INDEX); if (!err) err = create_hardlink(g_index_block, root_ref, m, MK_LE_MREF(9, 9), 0LL, 0LL, @@ -4840,7 +4840,7 @@ static BOOL mkntfs_create_root_structures(void) * volume as corrupt. (ERSO) */ m = (MFT_RECORD*)(g_buf + 11 * g_vol->mft_record_size); - m->flags |= MFT_RECORD_IS_DIRECTORY; + m->flags = le16_or(m->flags, MFT_RECORD_IS_DIRECTORY); if (!err) err = create_hardlink(g_index_block, root_ref, m, MK_LE_MREF(11, 11), 0LL, 0LL, @@ -4879,8 +4879,8 @@ static BOOL mkntfs_create_root_structures(void) FILE_ATTR_ARCHIVE | FILE_ATTR_VIEW_INDEX_PRESENT; ntfs_log_verbose("Creating $Quota (mft record 24)\n"); m = (MFT_RECORD*)(g_buf + 24 * g_vol->mft_record_size); - m->flags |= MFT_RECORD_IS_4; - m->flags |= MFT_RECORD_IS_VIEW_INDEX; + m->flags = le16_or(m->flags, MFT_RECORD_IS_4); + m->flags = le16_or(m->flags, MFT_RECORD_IS_VIEW_INDEX); if (!err) err = create_hardlink_res((MFT_RECORD*)(g_buf + 11 * g_vol->mft_record_size), extend_ref, m, @@ -4902,8 +4902,8 @@ static BOOL mkntfs_create_root_structures(void) } ntfs_log_verbose("Creating $ObjId (mft record 25)\n"); m = (MFT_RECORD*)(g_buf + 25 * g_vol->mft_record_size); - m->flags |= MFT_RECORD_IS_4; - m->flags |= MFT_RECORD_IS_VIEW_INDEX; + m->flags = le16_or(m->flags, MFT_RECORD_IS_4); + m->flags = le16_or(m->flags, MFT_RECORD_IS_VIEW_INDEX); if (!err) err = create_hardlink_res((MFT_RECORD*)(g_buf + 11 * g_vol->mft_record_size), extend_ref, @@ -4926,8 +4926,8 @@ static BOOL mkntfs_create_root_structures(void) } ntfs_log_verbose("Creating $Reparse (mft record 26)\n"); m = (MFT_RECORD*)(g_buf + 26 * g_vol->mft_record_size); - m->flags |= MFT_RECORD_IS_4; - m->flags |= MFT_RECORD_IS_VIEW_INDEX; + m->flags = le16_or(m->flags, MFT_RECORD_IS_4); + m->flags = le16_or(m->flags, MFT_RECORD_IS_VIEW_INDEX); if (!err) err = create_hardlink_res((MFT_RECORD*)(g_buf + 11 * g_vol->mft_record_size), diff --git a/ntfsprogs/ntfsck.c b/ntfsprogs/ntfsck.c index 5a50028e..d6bca813 100644 --- a/ntfsprogs/ntfsck.c +++ b/ntfsprogs/ntfsck.c @@ -791,7 +791,7 @@ static int reset_dirty(ntfs_volume *vol) { u16 flags; - if (le16_cmpz(vol->flags | VOLUME_IS_DIRTY)) + if (le16_cmpz(le16_or(vol->flags, VOLUME_IS_DIRTY))) return 0; ntfs_log_verbose("Resetting dirty flag.\n"); diff --git a/ntfsprogs/ntfsfix.c b/ntfsprogs/ntfsfix.c index 93ec064c..b2c62bab 100644 --- a/ntfsprogs/ntfsfix.c +++ b/ntfsprogs/ntfsfix.c @@ -305,7 +305,7 @@ static int set_dirty_flag(ntfs_volume *vol) * Set chkdsk flag, i.e. mark the partition dirty so chkdsk will run * and fix it for us. */ - flags = vol->flags | VOLUME_IS_DIRTY; + flags = le16_or(vol->flags, VOLUME_IS_DIRTY); if (!opt.no_action && OLD_ntfs_volume_set_flags(vol, flags)) { ntfs_log_info(FAILED); ntfs_log_error("Error setting volume flags.\n"); @@ -1614,7 +1614,7 @@ int main(int argc, char **argv) if (opt.clear_dirty) vol->flags = le16_and(vol->flags, ~VOLUME_IS_DIRTY); else - vol->flags |= VOLUME_IS_DIRTY; + vol->flags = le16_or(vol->flags, VOLUME_IS_DIRTY); if (!opt.no_action && ntfs_volume_write_flags(vol, vol->flags)) { ntfs_log_error("Error: Failed to set volume dirty flag (%d " "(%s))!\n", errno, strerror(errno)); diff --git a/ntfsprogs/ntfsmove.c b/ntfsprogs/ntfsmove.c index 06bd262b..9df4d67a 100644 --- a/ntfsprogs/ntfsmove.c +++ b/ntfsprogs/ntfsmove.c @@ -902,7 +902,7 @@ int main(int argc, char *argv[]) * should be set. So we explicitly set it with a call to * ntfs_volume_write_flags. */ if(le16_andz(vol->flags, VOLUME_IS_DIRTY) && ntfs_volume_write_flags( - vol, vol->flags | VOLUME_IS_DIRTY)) { + vol, le16_or(vol->flags, VOLUME_IS_DIRTY))) { ntfs_log_error("Error: Failed to set volume dirty " "flag (%d (%s))!\n", errno, strerror(errno)); } diff --git a/ntfsprogs/ntfsresize.c b/ntfsprogs/ntfsresize.c index 57798fdf..bbb9a67b 100644 --- a/ntfsprogs/ntfsresize.c +++ b/ntfsprogs/ntfsresize.c @@ -2818,7 +2818,7 @@ static void prepare_volume_fixup(ntfs_volume *vol) { printf("Schedule chkdsk for NTFS consistency check at Windows boot " "time ...\n"); - vol->flags |= VOLUME_IS_DIRTY; + vol->flags = le16_or(vol->flags, VOLUME_IS_DIRTY); if (ntfs_volume_write_flags(vol, vol->flags)) perr_exit("Failed to set the volume dirty"); diff --git a/ntfsprogs/sd.c b/ntfsprogs/sd.c index 4e3af978..24ad8481 100644 --- a/ntfsprogs/sd.c +++ b/ntfsprogs/sd.c @@ -37,7 +37,7 @@ void init_system_file_sd(int sys_file_no, u8 **sd_val, int *sd_val_len) sd = (SECURITY_DESCRIPTOR_RELATIVE*)&sd_array; sd->revision = 1; sd->alignment = 0; - sd->control = SE_SELF_RELATIVE | SE_DACL_PRESENT; + sd->control = le16_or(SE_SELF_RELATIVE, SE_DACL_PRESENT); *sd_val_len = 0x64; sd->owner = const_cpu_to_le32(0x48); sd->group = const_cpu_to_le32(0x54); @@ -184,7 +184,7 @@ void init_root_sd(u8 **sd_val, int *sd_val_len) sd = (SECURITY_DESCRIPTOR_RELATIVE*)sd_array; sd->revision = SECURITY_DESCRIPTOR_REVISION; sd->alignment = 0; - sd->control = SE_SELF_RELATIVE | SE_DACL_PRESENT; + sd->control = le16_or(SE_SELF_RELATIVE, SE_DACL_PRESENT); sd->owner = const_cpu_to_le32(0x1014); sd->group = const_cpu_to_le32(0x1020); sd->sacl = 0; @@ -424,7 +424,7 @@ void init_secure_sds(char *sd_val) sizeof(SECURITY_DESCRIPTOR_HEADER)); sd->revision = 0x01; sd->alignment = 0x00; - sd->control = SE_SELF_RELATIVE | SE_DACL_PRESENT; + sd->control = le16_or(SE_SELF_RELATIVE, SE_DACL_PRESENT); sd->owner = const_cpu_to_le32(0x48); sd->group = const_cpu_to_le32(0x58); sd->sacl = const_cpu_to_le32(0x00); @@ -520,7 +520,7 @@ void init_secure_sds(char *sd_val) sizeof(SECURITY_DESCRIPTOR_HEADER)); sd->revision = 0x01; sd->alignment = 0x00; - sd->control = SE_SELF_RELATIVE | SE_DACL_PRESENT; + sd->control = le16_or(SE_SELF_RELATIVE, SE_DACL_PRESENT); sd->owner = const_cpu_to_le32(0x48); sd->group = const_cpu_to_le32(0x58); sd->sacl = const_cpu_to_le32(0x00); diff --git a/src/lowntfs-3g.c b/src/lowntfs-3g.c index db60dab9..642e3d04 100644 --- a/src/lowntfs-3g.c +++ b/src/lowntfs-3g.c @@ -2677,7 +2677,7 @@ static void ntfs_fuse_bmap(fuse_req_t req, fuse_ino_t ino, size_t blocksize, goto close_inode; } - if (!le16_andz(na->data_flags, ATTR_COMPRESSION_MASK | ATTR_IS_ENCRYPTED) + if (!le16_andz(na->data_flags, le16_or(ATTR_COMPRESSION_MASK, ATTR_IS_ENCRYPTED)) || !NAttrNonResident(na)) { ret = -EINVAL; goto close_attr; diff --git a/src/ntfs-3g.c b/src/ntfs-3g.c index c55f6fa1..d2b5001b 100644 --- a/src/ntfs-3g.c +++ b/src/ntfs-3g.c @@ -2494,7 +2494,7 @@ static int ntfs_fuse_bmap(const char *path, size_t blocksize, uint64_t *idx) goto close_inode; } - if (!le16_andz(na->data_flags, ATTR_COMPRESSION_MASK | ATTR_IS_ENCRYPTED) + if (!le16_andz(na->data_flags, le16_or(ATTR_COMPRESSION_MASK, ATTR_IS_ENCRYPTED)) || !NAttrNonResident(na)) { ret = -EINVAL; goto close_attr;