cifs-utils/0001-get-setcifsacl-fix-bad-bit-shifts.patch
Jeff Layton e220fa3cd8 Fixes for bugs reported by Coverity:
- update bad bit shift patch with one that patches getcifsacl.c too
- remove some dead code from getcifsacl.c, asn1.c, and data_blob.c
- fix bad handling of allocated memory in del_mtab in mount.cifs.c

Signed-off-by: Jeff Layton <jlayton@redhat.com>
2013-10-11 11:27:47 -04:00

51 lines
1.8 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From 99d2a5a4517216a63cfdeef3ee30656938b3a98e Mon Sep 17 00:00:00 2001
From: Jeff Layton <jlayton@samba.org>
Date: Tue, 8 Oct 2013 21:07:24 -0400
Subject: [PATCH] get/setcifsacl: fix bad bit-shifts
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
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>
---
getcifsacl.c | 2 +-
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;
--
1.8.3.1