X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=src%2Fphp_http_etag.c;h=1430cfa1c6726dec7b6b2f3264fa4cf0abf0012c;hp=ceb82e334f74489df046b591fcd1d425dcce5375;hb=7a35bd0f7a32918dd2729aaf066c03ba344bf4c4;hpb=a5df2b0848bd62fde66253f0dd825708b9dc0360 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);