[sr-dev] git:master:cfccbfa8: lib/srutils: fix gcc warning GH#612
Mikko Lehto
mslehto at iki.fi
Wed May 18 07:11:00 CEST 2016
Module: kamailio
Branch: master
Commit: cfccbfa8590dffe9a1282dba6ce757f686f55599
URL: https://github.com/kamailio/kamailio/commit/cfccbfa8590dffe9a1282dba6ce757f686f55599
Author: Mikko Lehto <mslehto at iki.fi>
Committer: Mikko Lehto <mslehto at iki.fi>
Date: 2016-05-17T15:18:01+03:00
lib/srutils: fix gcc warning GH#612
> sha256.c: In function 'sr_SHA256_Final':
> sha256.c:613:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
> *(sha2_word64*)&context->buffer[SHA256_SHORT_BLOCK_LENGTH] = context->bitcount;
> ^
> sha256.c: In function 'SHA512_Last':
> sha256.c:930:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
> *(sha2_word64*)&context->buffer[SHA512_SHORT_BLOCK_LENGTH] = context->bitcount[1];
> ^
> sha256.c:931:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
> *(sha2_word64*)&context->buffer[SHA512_SHORT_BLOCK_LENGTH+8] = context->bitcount[0];
> ^
---
Modified: lib/srutils/sha256.c
---
Diff: https://github.com/kamailio/kamailio/commit/cfccbfa8590dffe9a1282dba6ce757f686f55599.diff
Patch: https://github.com/kamailio/kamailio/commit/cfccbfa8590dffe9a1282dba6ce757f686f55599.patch
---
diff --git a/lib/srutils/sha256.c b/lib/srutils/sha256.c
index 90efd15..2b40551 100644
--- a/lib/srutils/sha256.c
+++ b/lib/srutils/sha256.c
@@ -610,7 +610,7 @@ void sr_SHA256_Final(sha2_byte digest[], SHA256_CTX* context) {
*context->buffer = 0x80;
}
/* Set the bit count: */
- *(sha2_word64*)&context->buffer[SHA256_SHORT_BLOCK_LENGTH] = context->bitcount;
+ MEMCPY_BCOPY(&(context->buffer[SHA256_SHORT_BLOCK_LENGTH]), &(context->bitcount), sizeof(sha2_word64));
/* Final transform: */
SHA256_Transform(context, (sha2_word32*)context->buffer);
@@ -927,8 +927,8 @@ void SHA512_Last(SHA512_CTX* context) {
*context->buffer = 0x80;
}
/* Store the length of input data (in bits): */
- *(sha2_word64*)&context->buffer[SHA512_SHORT_BLOCK_LENGTH] = context->bitcount[1];
- *(sha2_word64*)&context->buffer[SHA512_SHORT_BLOCK_LENGTH+8] = context->bitcount[0];
+ MEMCPY_BCOPY(&(context->buffer[SHA512_SHORT_BLOCK_LENGTH+0]), &(context->bitcount[1]), sizeof(sha2_word64));
+ MEMCPY_BCOPY(&(context->buffer[SHA512_SHORT_BLOCK_LENGTH+8]), &(context->bitcount[0]), sizeof(sha2_word64));
/* Final transform: */
SHA512_Transform(context, (sha2_word64*)context->buffer);
More information about the sr-dev
mailing list