[ccan] [PATCH 5/7] crypto/ripemd160: Correct badly sized union member
    David Gibson 
    david at gibson.dropbear.id.au
       
    Mon Apr  3 21:11:10 AEST 2017
    
    
  
struct ripemd160_ctx has a union for converting between u8[] and u32[]
data.  Unfortunately the u32 array has a miscalculated size, half the size
of the u8 array.  That means some accesses which are within the union can
technically overrun the u32 array.
Found by Coverity scan.
Signed-off-by: David Gibson <david at gibson.dropbear.id.au>
---
 ccan/crypto/ripemd160/ripemd160.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ccan/crypto/ripemd160/ripemd160.h b/ccan/crypto/ripemd160/ripemd160.h
index 377a07d..56854cf 100644
--- a/ccan/crypto/ripemd160/ripemd160.h
+++ b/ccan/crypto/ripemd160/ripemd160.h
@@ -49,7 +49,7 @@ struct ripemd160_ctx {
 	uint32_t s[5];
 	uint64_t bytes;
 	union {
-		uint32_t u32[8];
+		uint32_t u32[16];
 		unsigned char u8[64];
 	} buf;
 #endif
-- 
2.9.3
    
    
More information about the ccan
mailing list