From: Andrey Hristov Date: Thu, 15 Jul 2010 16:57:14 +0000 (+0000) Subject: Fix for Bug #51583 Bus error due to wrong alignment in mysqlnd X-Git-Tag: php-5.3.3~12 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a30113b617e98eabe94b02b4fa82387d462a4f8c;p=php Fix for Bug #51583 Bus error due to wrong alignment in mysqlnd --- diff --git a/NEWS b/NEWS index a423ef5332..345aedd330 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,7 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? Jul 2010, PHP 5.3.3 +- Fixed bug #51583 (Bus error due to wrong alignment in mysqlnd). (Rainer Jung) 15 Jul 2010, PHP 5.3.3 RC3 diff --git a/ext/mysqlnd/mysqlnd_net.c b/ext/mysqlnd/mysqlnd_net.c index 016a2f10fe..207fa53f0c 100644 --- a/ext/mysqlnd/mysqlnd_net.c +++ b/ext/mysqlnd/mysqlnd_net.c @@ -199,7 +199,12 @@ MYSQLND_METHOD(mysqlnd_net, connect)(MYSQLND_NET * net, const char * const schem /* We assume that MYSQLND_HEADER_SIZE is 4 bytes !! */ -#define STORE_HEADER_SIZE(safe_storage, buffer) int4store((safe_storage), (*(uint32_t *)(buffer))) +#define COPY_HEADER(T,A) do { \ + *(((char *)(T))) = *(((char *)(A)));\ + *(((char *)(T))+1) = *(((char *)(A))+1);\ + *(((char *)(T))+2) = *(((char *)(A))+2);\ + *(((char *)(T))+3) = *(((char *)(A))+3); } while (0) +#define STORE_HEADER_SIZE(safe_storage, buffer) COPY_HEADER((safe_storage), (buffer)) #define RESTORE_HEADER_SIZE(buffer, safe_storage) STORE_HEADER_SIZE((safe_storage), (buffer)) /* {{{ mysqlnd_net::send */