From: Greg Beaver Date: Sun, 15 Feb 2009 18:52:11 +0000 (+0000) Subject: MFB: fix setting of 32-bit values on big-endian systems X-Git-Tag: php-5.4.0alpha1~191^2~4271 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=99ce24d6f4bee553cbd2e083c5bc4567e8d39f46;p=php MFB: fix setting of 32-bit values on big-endian systems --- diff --git a/ext/phar/tar.c b/ext/phar/tar.c index 8a53989766..84789b1411 100644 --- a/ext/phar/tar.c +++ b/ext/phar/tar.c @@ -1084,10 +1084,10 @@ nostub: #ifdef WORDS_BIGENDIAN # define PHAR_SET_32(var, buffer) \ - *(php_uint32 *)(var) = (((((unsigned char*)(buffer))[3]) << 24) \ - | ((((unsigned char*)(buffer))[2]) << 16) \ - | ((((unsigned char*)(buffer))[1]) << 8) \ - | (((unsigned char*)(buffer))[0])) + *(php_uint32 *)(var) = (((((unsigned char*)&(buffer))[3]) << 24) \ + | ((((unsigned char*)&(buffer))[2]) << 16) \ + | ((((unsigned char*)&(buffer))[1]) << 8) \ + | (((unsigned char*)&(buffer))[0])) #else # define PHAR_SET_32(var, buffer) *(php_uint32 *)(var) = (php_uint32) (buffer) #endif