cellog Sun Feb 15 19:23:06 2009 UTC Modified files: /php-src/ext/phar zip.c Log: MFB: fix getting/setting of all 16/32 bit on zip http://cvs.php.net/viewvc.cgi/php-src/ext/phar/zip.c?r1=1.60&r2=1.61&diff_format=u Index: php-src/ext/phar/zip.c diff -u php-src/ext/phar/zip.c:1.60 php-src/ext/phar/zip.c:1.61 --- php-src/ext/phar/zip.c:1.60 Wed Dec 31 11:12:35 2008 +++ php-src/ext/phar/zip.c Sun Feb 15 19:23:06 2009 @@ -19,12 +19,19 @@ #include "phar_internal.h" #ifdef WORDS_BIGENDIAN -# define PHAR_GET_32(buffer) (((((unsigned char*)(buffer))[3]) << 24) \ - | ((((unsigned char*)(buffer))[2]) << 16) \ - | ((((unsigned char*)(buffer))[1]) << 8) \ - | (((unsigned char*)(buffer))[0])) -# define PHAR_GET_16(buffer) (((((unsigned char*)(buffer))[1]) << 8) \ - | (((unsigned char*)(buffer))[0])) +static inline php_uint32 phar_fix_32(php_uint32 buffer) +{ + return ((((unsigned char *)&buffer)[3]) << 24) | + ((((unsigned char *)&buffer)[2]) << 16) | + ((((unsigned char *)&buffer)[1]) << 8) | + (((unsigned char *)&buffer)[0]); +} +static inline php_uint16 phar_fix_16(php_uint16 buffer) +{ + return ((((unsigned char *)&buffer)[1]) << 8) | ((unsigned char *)&buffer)[0]; +} +# define PHAR_GET_32(buffer) phar_fix_32((php_uint32)(buffer)) +# define PHAR_GET_16(buffer) phar_fix_16((php_uint16)(buffer)) # define PHAR_SET_32(buffer) PHAR_GET_32(buffer) # define PHAR_SET_16(buffer) PHAR_GET_16(buffer) #else
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php