diff options
author | Jeff Layton <jlayton@samba.org> | 2013-10-08 21:07:24 -0400 |
---|---|---|
committer | Jeff Layton <jlayton@samba.org> | 2013-10-08 21:14:08 -0400 |
commit | 99d2a5a4517216a63cfdeef3ee30656938b3a98e (patch) | |
tree | 1641432f5b4512c18d45cb128f1e1bb220db48fd | |
parent | ec983ad90408b689408c2c89179bf8f7b35665a6 (diff) | |
download | cifs-utils-99d2a5a4517216a63cfdeef3ee30656938b3a98e.tar.gz cifs-utils-99d2a5a4517216a63cfdeef3ee30656938b3a98e.tar.bz2 cifs-utils-99d2a5a4517216a63cfdeef3ee30656938b3a98e.zip |
get/setcifsacl: fix bad bit-shifts
A Coverity scan turned up this warning:
1. cifs-utils-6.2/setcifsacl.c:578:result_independent_of_operands – "(x & 0xff0000000000ULL) >> 48" is 0 regardless of the values of its operands. This occurs as the operand of assignment.
...which is entirely true. That shift should be 40 bits, not 48. Also
fix a similar bug in getcifsacl.c.
Signed-off-by: Jeff Layton <jlayton@samba.org>
-rw-r--r-- | getcifsacl.c | 2 | ||||
-rw-r--r-- | setcifsacl.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/getcifsacl.c b/getcifsacl.c index b8998ef..33f36b4 100644 --- a/getcifsacl.c +++ b/getcifsacl.c @@ -198,7 +198,7 @@ print_sid_raw: id_auth_val += (unsigned long long)csid->authority[3] << 16; id_auth_val += (unsigned long long)csid->authority[2] << 24; id_auth_val += (unsigned long long)csid->authority[1] << 32; - id_auth_val += (unsigned long long)csid->authority[0] << 48; + id_auth_val += (unsigned long long)csid->authority[0] << 40; /* * MS-DTYP states that if the authority is >= 2^32, then it should be diff --git a/setcifsacl.c b/setcifsacl.c index ce708eb..7eeeaa6 100644 --- a/setcifsacl.c +++ b/setcifsacl.c @@ -575,7 +575,7 @@ raw_str_to_sid(const char *str, struct cifs_sid *csid) csid->authority[3] = (x & 0x000000ff0000ULL) >> 16; csid->authority[2] = (x & 0x0000ff000000ULL) >> 24; csid->authority[1] = (x & 0x00ff00000000ULL) >> 32; - csid->authority[0] = (x & 0xff0000000000ULL) >> 48; + csid->authority[0] = (x & 0xff0000000000ULL) >> 40; /* now read the the subauthorities and store as __le32 vals */ p = q + 1; |