X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=src%2Fphp_http_etag.c;h=1430cfa1c6726dec7b6b2f3264fa4cf0abf0012c;hp=c1e29c3f4c08b62e4842aaf861335b253ee95d6d;hb=7a35bd0f7a32918dd2729aaf066c03ba344bf4c4;hpb=a25866b2177031ae8f5142db8a45fd58dad4e161 diff --git a/src/php_http_etag.c b/src/php_http_etag.c index c1e29c3..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); -#if 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);