From: Matthijs Mekking Date: Mon, 2 Dec 2013 15:15:49 +0000 (+0100) Subject: better fix X-Git-Tag: release-1.6.17rc1~9^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bbd237e312c35e8e49a5939f2ddc039a8a8e13e1;p=thirdparty%2Fldns.git better fix --- diff --git a/sha1.c b/sha1.c index bb2b97b4..18a4dd28 100644 --- a/sha1.c +++ b/sha1.c @@ -15,12 +15,12 @@ */ /* #define LITTLE_ENDIAN * This should be #define'd already, if true. */ -/* #define SHA1HANDSOFF * Copies data before messing with it. */ #include #include #include +#define SHA1HANDSOFF 1 /* Copies data before messing with it. */ #define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits)))) /* blk0() and blk() perform the initial expand. */ @@ -122,21 +122,19 @@ ldns_sha1_update(ldns_sha1_ctx *context, const unsigned char *data, unsigned int { unsigned int i; unsigned int j; - unsigned char d[len]; - (void)memcpy((void*)d, data, len); j = (unsigned)(uint32_t)((context->count >> 3) & 63); context->count += (len << 3); if ((j + len) > 63) { - memmove(&context->buffer[j], d, (i = 64 - j)); + memmove(&context->buffer[j], data, (i = 64 - j)); ldns_sha1_transform(context->state, context->buffer); for ( ; i + 63 < len; i += 64) { - ldns_sha1_transform(context->state, &d[i]); + ldns_sha1_transform(context->state, &data[i]); } j = 0; } else i = 0; - memmove(&context->buffer[j], &d[i], len - i); + memmove(&context->buffer[j], &data[i], len - i); }