Merge branch 'PHP-7.0'

* PHP-7.0:
  Removed invalid efree() (arguments are allocated on VM stack and used without copying)
This commit is contained in:
Dmitry Stogov 2015-12-16 15:27:12 +03:00
commit c9aed87073

View File

@ -143,17 +143,14 @@ PHP_FUNCTION(ibase_wait_event)
if (Z_TYPE(args[0]) == IS_RESOURCE) { if (Z_TYPE(args[0]) == IS_RESOURCE) {
if ((ib_link = (ibase_db_link *)zend_fetch_resource2_ex(&args[0], "InterBase link", le_link, le_plink)) == NULL) { if ((ib_link = (ibase_db_link *)zend_fetch_resource2_ex(&args[0], "InterBase link", le_link, le_plink)) == NULL) {
efree(args);
RETURN_FALSE; RETURN_FALSE;
} }
i = 1; i = 1;
} else { } else {
if (ZEND_NUM_ARGS() > 15) { if (ZEND_NUM_ARGS() > 15) {
efree(args);
WRONG_PARAM_COUNT; WRONG_PARAM_COUNT;
} }
if ((ib_link = (ibase_db_link *)zend_fetch_resource2_ex(IBG(default_link), "InterBase link", le_link, le_plink)) == NULL) { if ((ib_link = (ibase_db_link *)zend_fetch_resource2_ex(IBG(default_link), "InterBase link", le_link, le_plink)) == NULL) {
efree(args);
RETURN_FALSE; RETURN_FALSE;
} }
} }
@ -170,7 +167,6 @@ PHP_FUNCTION(ibase_wait_event)
if (isc_wait_for_event(IB_STATUS, &ib_link->handle, buffer_size, event_buffer, result_buffer)) { if (isc_wait_for_event(IB_STATUS, &ib_link->handle, buffer_size, event_buffer, result_buffer)) {
_php_ibase_error(); _php_ibase_error();
_php_ibase_event_free(event_buffer,result_buffer); _php_ibase_event_free(event_buffer,result_buffer);
efree(args);
RETURN_FALSE; RETURN_FALSE;
} }
@ -180,7 +176,6 @@ PHP_FUNCTION(ibase_wait_event)
if (occurred_event[i]) { if (occurred_event[i]) {
zend_string *result = zend_string_init(events[i], strlen(events[i]), 0); zend_string *result = zend_string_init(events[i], strlen(events[i]), 0);
_php_ibase_event_free(event_buffer,result_buffer); _php_ibase_event_free(event_buffer,result_buffer);
efree(args);
RETURN_STR(result); RETURN_STR(result);
} }
} }
@ -188,7 +183,6 @@ PHP_FUNCTION(ibase_wait_event)
/* If we reach this line, isc_wait_for_event() did return, but we don't know /* If we reach this line, isc_wait_for_event() did return, but we don't know
which event fired. */ which event fired. */
_php_ibase_event_free(event_buffer,result_buffer); _php_ibase_event_free(event_buffer,result_buffer);
efree(args);
RETURN_FALSE; RETURN_FALSE;
} }
/* }}} */ /* }}} */