diff options
| author | Andrey Hristov <andrey@php.net> | 2010-07-15 16:57:14 +0000 |
|---|---|---|
| committer | Andrey Hristov <andrey@php.net> | 2010-07-15 16:57:14 +0000 |
| commit | 7043949c892e8b99a51f3e105f17ae133668b007 (patch) | |
| tree | 5f1bdc09e93ffb18d71c3a5a6182139cc1d29488 /ext/mysqlnd/mysqlnd_net.c | |
| parent | f35e10e17ff624b1ccf08cdec74ca1fa6fa99aff (diff) | |
| download | php-git-7043949c892e8b99a51f3e105f17ae133668b007.tar.gz | |
Fix for Bug #51583 Bus error due to wrong alignment in mysqlnd
Diffstat (limited to 'ext/mysqlnd/mysqlnd_net.c')
| -rw-r--r-- | ext/mysqlnd/mysqlnd_net.c | 7 |
1 files changed, 6 insertions, 1 deletions
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 */ |
