Blame SOURCES/0001-get-setcifsacl-fix-bad-bit-shifts.patch

97823b
From 99d2a5a4517216a63cfdeef3ee30656938b3a98e Mon Sep 17 00:00:00 2001
97823b
From: Jeff Layton <jlayton@samba.org>
97823b
Date: Tue, 8 Oct 2013 21:07:24 -0400
97823b
Subject: [PATCH] get/setcifsacl: fix bad bit-shifts
97823b
MIME-Version: 1.0
97823b
Content-Type: text/plain; charset=UTF-8
97823b
Content-Transfer-Encoding: 8bit
97823b
97823b
A Coverity scan turned up this warning:
97823b
97823b
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.
97823b
97823b
...which is entirely true. That shift should be 40 bits, not 48. Also
97823b
fix a similar bug in getcifsacl.c.
97823b
97823b
Signed-off-by: Jeff Layton <jlayton@samba.org>
97823b
---
97823b
 getcifsacl.c | 2 +-
97823b
 setcifsacl.c | 2 +-
97823b
 2 files changed, 2 insertions(+), 2 deletions(-)
97823b
97823b
diff --git a/getcifsacl.c b/getcifsacl.c
97823b
index b8998ef..33f36b4 100644
97823b
--- a/getcifsacl.c
97823b
+++ b/getcifsacl.c
97823b
@@ -198,7 +198,7 @@ print_sid_raw:
97823b
 	id_auth_val += (unsigned long long)csid->authority[3] << 16;
97823b
 	id_auth_val += (unsigned long long)csid->authority[2] << 24;
97823b
 	id_auth_val += (unsigned long long)csid->authority[1] << 32;
97823b
-	id_auth_val += (unsigned long long)csid->authority[0] << 48;
97823b
+	id_auth_val += (unsigned long long)csid->authority[0] << 40;
97823b
 
97823b
 	/*
97823b
 	 * MS-DTYP states that if the authority is >= 2^32, then it should be
97823b
diff --git a/setcifsacl.c b/setcifsacl.c
97823b
index ce708eb..7eeeaa6 100644
97823b
--- a/setcifsacl.c
97823b
+++ b/setcifsacl.c
97823b
@@ -575,7 +575,7 @@ raw_str_to_sid(const char *str, struct cifs_sid *csid)
97823b
 	csid->authority[3] = (x & 0x000000ff0000ULL) >> 16;
97823b
 	csid->authority[2] = (x & 0x0000ff000000ULL) >> 24;
97823b
 	csid->authority[1] = (x & 0x00ff00000000ULL) >> 32;
97823b
-	csid->authority[0] = (x & 0xff0000000000ULL) >> 48;
97823b
+	csid->authority[0] = (x & 0xff0000000000ULL) >> 40;
97823b
 
97823b
 	/* now read the the subauthorities and store as __le32 vals */
97823b
 	p = q + 1;
97823b
-- 
97823b
1.8.3.1
97823b