mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Fix bug #72293 - Heap overflow in mysqlnd related to BIT fields
This commit is contained in:
parent
339a865d87
commit
caea2c876b
1 changed files with 5 additions and 0 deletions
|
@ -1635,6 +1635,7 @@ php_mysqlnd_rowp_read_text_protocol_aux(MYSQLND_MEMORY_POOL_CHUNK * row_buffer,
|
|||
zend_uchar * p = row_buffer->ptr;
|
||||
size_t data_size = row_buffer->app;
|
||||
zend_uchar * bit_area = (zend_uchar*) row_buffer->ptr + data_size + 1; /* we allocate from here */
|
||||
const zend_uchar * const packet_end = (zend_uchar*) row_buffer->ptr + data_size;
|
||||
|
||||
DBG_ENTER("php_mysqlnd_rowp_read_text_protocol_aux");
|
||||
|
||||
|
@ -1651,6 +1652,10 @@ php_mysqlnd_rowp_read_text_protocol_aux(MYSQLND_MEMORY_POOL_CHUNK * row_buffer,
|
|||
/* NULL or NOT NULL, this is the question! */
|
||||
if (len == MYSQLND_NULL_LENGTH) {
|
||||
ZVAL_NULL(current_field);
|
||||
} else if ((p + len) > packet_end) {
|
||||
php_error_docref(NULL, E_WARNING, "Malformed server packet. Field length pointing "MYSQLND_SZ_T_SPEC
|
||||
" bytes after end of packet", (p + len) - packet_end - 1);
|
||||
DBG_RETURN(FAIL);
|
||||
} else {
|
||||
#if defined(MYSQLND_STRING_TO_INT_CONVERSION)
|
||||
struct st_mysqlnd_perm_bind perm_bind =
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue