[PATCH 01/12] notes: make GET_NIBBLE macro more robust
- From
Michael Haggerty <mhagger@alum.mit.edu>
- Date
- Aug 26, 2017, 08:28 UTC
- Message-ID
- <df9d90032a9bc36333b4c5d19edf7135bf862c19.1503734566.git.mhagger@alum.mit.edu>
- In-Reply-To
- <cover.1503734566.git.mhagger@alum.mit.edu>
Put parentheses around sha1. Otherwise it could fail for something like
GET_NIBBLE(n, (unsigned char *)data);
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> --- notes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/notes.c b/notes.c index f090c88363..00630a9396 100644 --- a/notes.c +++ b/notes.c @@ -64,7 +64,7 @@ struct non_note { #define CLR_PTR_TYPE(ptr) ((void *) ((uintptr_t) (ptr) & ~3)) #define SET_PTR_TYPE(ptr, type) ((void *) ((uintptr_t) (ptr) | (type))) -#define GET_NIBBLE(n, sha1) (((sha1[(n) >> 1]) >> ((~(n) & 0x01) << 2)) & 0x0f) +#define GET_NIBBLE(n, sha1) ((((sha1)[(n) >> 1]) >> ((~(n) & 0x01) << 2)) & 0x0f) #define KEY_INDEX (GIT_SHA1_RAWSZ - 1) #define FANOUT_PATH_SEPARATORS ((GIT_SHA1_HEXSZ / 2) - 1)
-- 2.11.0