com php-src: Fix buffer growth in sockets/conversion.c: ext/sockets/conversions.c
| From: | Sara Golemon | Date: | Wed, 17 Jun 2015 20:34:20 +0000 |
| Subject: | com php-src: Fix buffer growth in sockets/conversion.c: ext/sockets/conversions.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-87344@lists.php.net to get a copy of this message | ||
Commit: d241711f44e85c9c59e73c17244c867820ba89e8
Author: Sara Golemon <sgolemon@fb.com> Wed, 17 Jun 2015 13:26:48 -0700
Parents: 61d58f2d9e9175786406dd11178190644a1e0183
Branches: PHP-5.5
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=d241711f44e85c9c59e73c17244c867820ba89e8
Log:
Fix buffer growth in sockets/conversion..c
memset() the *end* of the new buffer, not the beginning
Copy the pointer to the buffer, not its initial contents
Fixes bug 69619
Bugs:
https://bugs.php.net/69619
Changed paths:
M ext/sockets/conversions.c
Diff:
diff --git a/ext/sockets/conversions.c b/ext/sockets/conversions.c
index d814845..30e895d 100644
--- a/ext/sockets/conversions.c
+++ b/ext/sockets/conversions.c
@@ -910,8 +910,8 @@ static void from_zval_write_control(const zval *arr,
if (space_left < req_space) {
*control_buf = safe_erealloc(*control_buf, 2, req_space, *control_len);
*control_len += 2 * req_space;
- memset(*control_buf, '\0', *control_len - *offset);
- memcpy(&alloc->data, *control_buf, sizeof *control_buf);
+ memset(*control_buf + *offset, '\0', *control_len - *offset);
+ memcpy(&alloc->data, control_buf, sizeof *control_buf);
}
cmsghdr = (struct cmsghdr*)(((char*)*control_buf) + *offset);