From 7b3700ed5e496848ee9cb00d0fa1b7403bbb2f49 Mon Sep 17 00:00:00 2001 From: Erik Larsson Date: Thu, 28 Jan 2016 08:28:51 +0100 Subject: [PATCH] Replace all le32 "and" calculations with le32_and(...). --- include/ntfs-3g/endians.h | 2 ++ libntfs-3g/acls.c | 32 ++++++++++++++++---------------- libntfs-3g/attrib.c | 2 +- libntfs-3g/compress.c | 2 +- libntfs-3g/dir.c | 6 +++--- libntfs-3g/inode.c | 4 ++-- libntfs-3g/reparse.c | 4 ++-- libntfs-3g/security.c | 10 +++++----- ntfsprogs/ntfsinfo.c | 32 ++++++++++++++++---------------- 9 files changed, 48 insertions(+), 46 deletions(-) diff --git a/include/ntfs-3g/endians.h b/include/ntfs-3g/endians.h index 457fa679..b69c2b47 100644 --- a/include/ntfs-3g/endians.h +++ b/include/ntfs-3g/endians.h @@ -326,4 +326,6 @@ #define le16_and(a, b) ((a) & (b)) +#define le32_and(a, b) ((a) & (b)) + #endif /* defined _NTFS_ENDIANS_H */ diff --git a/libntfs-3g/acls.c b/libntfs-3g/acls.c index 91c82ee4..86856005 100644 --- a/libntfs-3g/acls.c +++ b/libntfs-3g/acls.c @@ -775,7 +775,7 @@ int ntfs_inherit_acl(const ACL *oldacl, ACL *newacl, memcpy(pnewace,poldace,acesz); /* reencode GENERIC_ALL */ if (!le32_andz(pnewace->mask, GENERIC_ALL)) { - pnewace->mask &= ~GENERIC_ALL; + pnewace->mask = le32_and(pnewace->mask, ~GENERIC_ALL); if (fordir) pnewace->mask |= OWNER_RIGHTS | DIR_READ @@ -802,12 +802,12 @@ int ntfs_inherit_acl(const ACL *oldacl, ACL *newacl, pnewace->mask |= OWNER_RIGHTS | FILE_READ | FILE_EXEC; - pnewace->mask &= ~(GENERIC_READ + pnewace->mask = le32_and(pnewace->mask, ~(GENERIC_READ | GENERIC_EXECUTE | WRITE_DAC | WRITE_OWNER | DELETE | FILE_WRITE_EA - | FILE_WRITE_ATTRIBUTES); + | FILE_WRITE_ATTRIBUTES)); } /* reencode GENERIC_WRITE */ if (!le32_andz(pnewace->mask, GENERIC_WRITE)) { @@ -817,10 +817,10 @@ int ntfs_inherit_acl(const ACL *oldacl, ACL *newacl, else pnewace->mask |= OWNER_RIGHTS | FILE_WRITE; - pnewace->mask &= ~(GENERIC_WRITE + pnewace->mask = le32_and(pnewace->mask, ~(GENERIC_WRITE | WRITE_DAC | WRITE_OWNER - | FILE_DELETE_CHILD); + | FILE_DELETE_CHILD)); } /* remove inheritance flags */ pnewace->flags &= ~(OBJECT_INHERIT_ACE @@ -2531,7 +2531,7 @@ static int buildacls(char *secattr, int offs, mode_t mode, int isdir, denials |= FILE_READ; } } - denials &= ~grants; + denials = le32_and(denials, ~grants); if (!le32_cmpz(denials)) { pdace->type = ACCESS_DENIED_ACE_TYPE; pdace->size = cpu_to_le16(usidsz + 8); @@ -2618,7 +2618,7 @@ static int buildacls(char *secattr, int offs, mode_t mode, int isdir, if (mode & S_IROTH) denials |= FILE_READ; } - denials &= ~(grants | OWNER_RIGHTS); + denials = le32_and(denials, ~(grants | OWNER_RIGHTS)); if (!le32_cmpz(denials)) { pdace->type = ACCESS_DENIED_ACE_TYPE; pdace->size = cpu_to_le16(gsidsz + 8); @@ -3258,9 +3258,9 @@ static int build_std_permissions(const char *securattr, allowown |= (allowgrp | allowall); allowgrp |= allowall; return (merge_permissions(isdir, - allowown & ~(denyown | denyall), - allowgrp & ~(denygrp | denyall), - allowall & ~denyall, + le32_and(allowown, ~(denyown | denyall)), + le32_and(allowgrp, ~(denygrp | denyall)), + le32_and(allowall, ~denyall), special)); } @@ -3337,9 +3337,9 @@ static int build_owngrp_permissions(const char *securattr, if (!grppresent) allowgrp = allowall; return (merge_permissions(isdir, - allowown & ~(denyown | denyall), - allowgrp & ~(denygrp | denyall), - allowall & ~denyall, + le32_and(allowown, ~(denyown | denyall)), + le32_and(allowgrp, ~(denygrp | denyall)), + le32_and(allowall, ~denyall), special)); } @@ -3533,9 +3533,9 @@ static int build_ownadmin_permissions(const char *securattr, allowgrp |= allowall; } return (merge_permissions(isdir, - allowown & ~(denyown | denyall), - allowgrp & ~(denygrp | denyall), - allowall & ~denyall, + le32_and(allowown, ~(denyown | denyall)), + le32_and(allowgrp, ~(denygrp | denyall)), + le32_and(allowall, ~denyall), special)); } diff --git a/libntfs-3g/attrib.c b/libntfs-3g/attrib.c index 30a05a64..014c34d2 100644 --- a/libntfs-3g/attrib.c +++ b/libntfs-3g/attrib.c @@ -102,7 +102,7 @@ static void NAttrSetFlag(ntfs_attr *na, FILE_ATTR_FLAGS flag) static void NAttrClearFlag(ntfs_attr *na, FILE_ATTR_FLAGS flag) { if (le32_eq(na->type, AT_DATA) && na->name == AT_UNNAMED) - na->ni->flags &= ~flag; + na->ni->flags = le32_and(na->ni->flags, ~flag); } #define GenNAttrIno(func_name, flag) \ diff --git a/libntfs-3g/compress.c b/libntfs-3g/compress.c index 63739f5b..00feb104 100644 --- a/libntfs-3g/compress.c +++ b/libntfs-3g/compress.c @@ -722,7 +722,7 @@ s64 ntfs_compressed_attr_pread(ntfs_attr *na, s64 pos, s64 count, void *b) (unsigned long long)na->ni->mft_no, na->type, (long long)pos, (long long)count); data_flags = na->data_flags; - compression = na->ni->flags & FILE_ATTR_COMPRESSED; + compression = le32_and(na->ni->flags, FILE_ATTR_COMPRESSED); if (!na || !na->ni || !na->ni->vol || !b || !le16_eq(le16_and(data_flags, ATTR_COMPRESSION_MASK), ATTR_IS_COMPRESSED) diff --git a/libntfs-3g/dir.c b/libntfs-3g/dir.c index 728fbbf4..00ee94af 100644 --- a/libntfs-3g/dir.c +++ b/libntfs-3g/dir.c @@ -1683,9 +1683,9 @@ static ntfs_inode *__ntfs_create(ntfs_inode *dir_ni, le32 securid, if (!S_ISREG(type) && !S_ISDIR(type)) fn->file_attributes = FILE_ATTR_SYSTEM; else - fn->file_attributes |= ni->flags & FILE_ATTR_COMPRESSED; + fn->file_attributes |= le32_and(ni->flags, FILE_ATTR_COMPRESSED); fn->file_attributes |= FILE_ATTR_ARCHIVE; - fn->file_attributes |= ni->flags & FILE_ATTR_HIDDEN; + fn->file_attributes |= le32_and(ni->flags, FILE_ATTR_HIDDEN); fn->creation_time = ni->creation_time; fn->last_data_change_time = ni->last_data_change_time; fn->last_mft_change_time = ni->last_mft_change_time; @@ -2169,7 +2169,7 @@ static int ntfs_link_i(ntfs_inode *ni, ntfs_inode *dir_ni, const ntfschar *name, && (!le16_eq(name[1], const_cpu_to_le16('.')))) ni->flags |= FILE_ATTR_HIDDEN; else - ni->flags &= ~FILE_ATTR_HIDDEN; + ni->flags = le32_and(ni->flags, ~FILE_ATTR_HIDDEN); } /* Create FILE_NAME attribute. */ diff --git a/libntfs-3g/inode.c b/libntfs-3g/inode.c index 0043fc7b..2926ced4 100644 --- a/libntfs-3g/inode.c +++ b/libntfs-3g/inode.c @@ -870,8 +870,8 @@ static int ntfs_inode_sync_file_name(ntfs_inode *ni, ntfs_inode *dir_ni) /* Update flags and file size. */ fnx = (FILE_NAME_ATTR *)ictx->data; fnx->file_attributes = - (fnx->file_attributes & ~FILE_ATTR_VALID_FLAGS) | - (ni->flags & FILE_ATTR_VALID_FLAGS); + le32_and(fnx->file_attributes, ~FILE_ATTR_VALID_FLAGS) | + le32_and(ni->flags, FILE_ATTR_VALID_FLAGS); if (!le16_andz(ni->mrec->flags, MFT_RECORD_IS_DIRECTORY)) fnx->data_size = fnx->allocated_size = const_cpu_to_le64(0); diff --git a/libntfs-3g/reparse.c b/libntfs-3g/reparse.c index 60945a6e..470b0aa9 100644 --- a/libntfs-3g/reparse.c +++ b/libntfs-3g/reparse.c @@ -1209,8 +1209,8 @@ int ntfs_remove_ntfs_reparse_data(ntfs_inode *ni) /* now remove attribute */ res = ntfs_attr_rm(na); if (!res) { - ni->flags &= - ~FILE_ATTR_REPARSE_POINT; + ni->flags = le32_and(ni->flags, + ~FILE_ATTR_REPARSE_POINT); NInoFileNameSetDirty(ni); } else { /* diff --git a/libntfs-3g/security.c b/libntfs-3g/security.c index 639b2193..c3e449a2 100644 --- a/libntfs-3g/security.c +++ b/libntfs-3g/security.c @@ -2949,7 +2949,7 @@ int ntfs_set_owner_mode(struct SECURITY_CONTEXT *scx, ntfs_inode *ni, /* adjust Windows read-only flag */ if (!isdir) { if (mode & S_IWUSR) - ni->flags &= ~FILE_ATTR_READONLY; + ni->flags = le32_and(ni->flags, ~FILE_ATTR_READONLY); else ni->flags |= FILE_ATTR_READONLY; NInoFileNameSetDirty(ni); @@ -4449,8 +4449,8 @@ int ntfs_set_ntfs_attrib(ntfs_inode *ni, } } if (!res) { - ni->flags = (ni->flags & ~settable) - | (cpu_to_le32(attrib) & settable); + ni->flags = le32_and(ni->flags, ~settable) | + le32_and(cpu_to_le32(attrib), settable); NInoFileNameSetDirty(ni); NInoSetDirty(ni); } @@ -5054,8 +5054,8 @@ BOOL ntfs_set_file_attributes(struct SECURITY_API *scapi, } } if (!res) { - ni->flags = (ni->flags & ~settable) - | (cpu_to_le32(attrib) & settable); + ni->flags = le32_and(ni->flags, ~settable) + | le32_and(cpu_to_le32(attrib), settable); NInoSetDirty(ni); NInoFileNameSetDirty(ni); } diff --git a/ntfsprogs/ntfsinfo.c b/ntfsprogs/ntfsinfo.c index 808e9504..8b8582a0 100644 --- a/ntfsprogs/ntfsinfo.c +++ b/ntfsprogs/ntfsinfo.c @@ -516,71 +516,71 @@ static void ntfs_dump_flags(const char *indent, ATTR_TYPES type, le32 flags) printf("%sFile attributes:\t", indent); if (!le32_andz(flags, FILE_ATTR_READONLY)) { printf(" READONLY"); - flags &= ~FILE_ATTR_READONLY; + flags = le32_and(flags, ~FILE_ATTR_READONLY); } if (!le32_andz(flags, FILE_ATTR_HIDDEN)) { printf(" HIDDEN"); - flags &= ~FILE_ATTR_HIDDEN; + flags = le32_and(flags, ~FILE_ATTR_HIDDEN); } if (!le32_andz(flags, FILE_ATTR_SYSTEM)) { printf(" SYSTEM"); - flags &= ~FILE_ATTR_SYSTEM; + flags = le32_and(flags, ~FILE_ATTR_SYSTEM); } if (!le32_andz(flags, FILE_ATTR_DIRECTORY)) { printf(" DIRECTORY"); - flags &= ~FILE_ATTR_DIRECTORY; + flags = le32_and(flags, ~FILE_ATTR_DIRECTORY); } if (!le32_andz(flags, FILE_ATTR_ARCHIVE)) { printf(" ARCHIVE"); - flags &= ~FILE_ATTR_ARCHIVE; + flags = le32_and(flags, ~FILE_ATTR_ARCHIVE); } if (!le32_andz(flags, FILE_ATTR_DEVICE)) { printf(" DEVICE"); - flags &= ~FILE_ATTR_DEVICE; + flags = le32_and(flags, ~FILE_ATTR_DEVICE); } if (!le32_andz(flags, FILE_ATTR_NORMAL)) { printf(" NORMAL"); - flags &= ~FILE_ATTR_NORMAL; + flags = le32_and(flags, ~FILE_ATTR_NORMAL); } if (!le32_andz(flags, FILE_ATTR_TEMPORARY)) { printf(" TEMPORARY"); - flags &= ~FILE_ATTR_TEMPORARY; + flags = le32_and(flags, ~FILE_ATTR_TEMPORARY); } if (!le32_andz(flags, FILE_ATTR_SPARSE_FILE)) { printf(" SPARSE_FILE"); - flags &= ~FILE_ATTR_SPARSE_FILE; + flags = le32_and(flags, ~FILE_ATTR_SPARSE_FILE); } if (!le32_andz(flags, FILE_ATTR_REPARSE_POINT)) { printf(" REPARSE_POINT"); - flags &= ~FILE_ATTR_REPARSE_POINT; + flags = le32_and(flags, ~FILE_ATTR_REPARSE_POINT); } if (!le32_andz(flags, FILE_ATTR_COMPRESSED)) { printf(" COMPRESSED"); - flags &= ~FILE_ATTR_COMPRESSED; + flags = le32_and(flags, ~FILE_ATTR_COMPRESSED); } if (!le32_andz(flags, FILE_ATTR_OFFLINE)) { printf(" OFFLINE"); - flags &= ~FILE_ATTR_OFFLINE; + flags = le32_and(flags, ~FILE_ATTR_OFFLINE); } if (!le32_andz(flags, FILE_ATTR_NOT_CONTENT_INDEXED)) { printf(" NOT_CONTENT_INDEXED"); - flags &= ~FILE_ATTR_NOT_CONTENT_INDEXED; + flags = le32_and(flags, ~FILE_ATTR_NOT_CONTENT_INDEXED); } if (!le32_andz(flags, FILE_ATTR_ENCRYPTED)) { printf(" ENCRYPTED"); - flags &= ~FILE_ATTR_ENCRYPTED; + flags = le32_and(flags, ~FILE_ATTR_ENCRYPTED); } /* We know that FILE_ATTR_I30_INDEX_PRESENT only exists on $FILE_NAME, and in case we are wrong, let it appear as UNKNOWN */ if (le32_eq(type, AT_FILE_NAME)) { if (!le32_andz(flags, FILE_ATTR_I30_INDEX_PRESENT)) { printf(" I30_INDEX"); - flags &= ~FILE_ATTR_I30_INDEX_PRESENT; + flags = le32_and(flags, ~FILE_ATTR_I30_INDEX_PRESENT); } } if (!le32_andz(flags, FILE_ATTR_VIEW_INDEX_PRESENT)) { printf(" VIEW_INDEX"); - flags &= ~FILE_ATTR_VIEW_INDEX_PRESENT; + flags = le32_and(flags, ~FILE_ATTR_VIEW_INDEX_PRESENT); } if (!le32_cmpz(flags)) printf(" UNKNOWN: 0x%08x", (unsigned int)le32_to_cpu(flags));