From: Ondřej Surý Date: Mon, 23 Jan 2017 09:39:48 +0000 (+0100) Subject: Use ntohl instead of doing LE conversion yourself X-Git-Tag: RELEASE_3_2_0_RC1~64 X-Git-Url: https://git.m6w6.name/?a=commitdiff_plain;h=5c8af959bf1b01f58bc47e77dcb18a7bac86bc6f;p=m6w6%2Fext-http Use ntohl instead of doing LE conversion yourself --- diff --git a/src/php_http_etag.c b/src/php_http_etag.c index ceb82e3..1430cfa 100644 --- a/src/php_http_etag.c +++ b/src/php_http_etag.c @@ -57,18 +57,10 @@ char *php_http_etag_finish(php_http_etag_t *e) char *etag = NULL; if (!strcasecmp(e->mode, "crc32b")) { - unsigned char buf[4]; - - *((uint *) e->ctx) = ~*((uint *) e->ctx); -#ifdef WORDS_BIGENDIAN - etag = php_http_etag_digest((unsigned char *) e->ctx, 4); -#else - buf[0] = ((unsigned char *) e->ctx)[3]; - buf[1] = ((unsigned char *) e->ctx)[2]; - buf[2] = ((unsigned char *) e->ctx)[1]; - buf[3] = ((unsigned char *) e->ctx)[0]; - etag = php_http_etag_digest(buf, 4); -#endif + uint e_ctx; + memcpy(&e_ctx, e->ctx, 4); + e_ctx = ntohl(~e_ctx); + etag = php_http_etag_digest((unsigned char *) &e_ctx, 4); } else if ((!strcasecmp(e->mode, "sha1"))) { PHP_SHA1Final(digest, e->ctx); etag = php_http_etag_digest(digest, 20);