summaryrefslogtreecommitdiff
path: root/ext/mysqlnd/mysqlnd_ps.c
diff options
context:
space:
mode:
authorAndrey Hristov <andrey@php.net>2010-05-14 13:04:33 +0000
committerAndrey Hristov <andrey@php.net>2010-05-14 13:04:33 +0000
commitce0ea97850f342ce25bd03b9938c489e93ac4247 (patch)
treeeb989890a8e5990ab1a0a9b52dd293b887450075 /ext/mysqlnd/mysqlnd_ps.c
parenta78fa3fcaf92f2e668262480d0384acb60be1420 (diff)
downloadphp-git-ce0ea97850f342ce25bd03b9938c489e93ac4247.tar.gz
OOM fixes
Diffstat (limited to 'ext/mysqlnd/mysqlnd_ps.c')
-rw-r--r--ext/mysqlnd/mysqlnd_ps.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/ext/mysqlnd/mysqlnd_ps.c b/ext/mysqlnd/mysqlnd_ps.c
index 778663b08a..1c7f60dd57 100644
--- a/ext/mysqlnd/mysqlnd_ps.c
+++ b/ext/mysqlnd/mysqlnd_ps.c
@@ -237,21 +237,24 @@ mysqlnd_stmt_skip_metadata(MYSQLND_STMT * s TSRMLS_DC)
MYSQLND_STMT_DATA * stmt = s->data;
/* Follows parameter metadata, we have just to skip it, as libmysql does */
unsigned int i = 0;
- enum_func_status ret = PASS;
+ enum_func_status ret = FAIL;
MYSQLND_PACKET_RES_FIELD * field_packet;
DBG_ENTER("mysqlnd_stmt_skip_metadata");
DBG_INF_FMT("stmt=%lu", stmt->stmt_id);
field_packet = stmt->conn->protocol->m.get_result_field_packet(stmt->conn->protocol, FALSE TSRMLS_CC);
- field_packet->skip_parsing = TRUE;
- for (;i < stmt->param_count; i++) {
- if (FAIL == PACKET_READ(field_packet, stmt->conn)) {
- ret = FAIL;
- break;
+ if (field_packet) {
+ ret = PASS;
+ field_packet->skip_parsing = TRUE;
+ for (;i < stmt->param_count; i++) {
+ if (FAIL == PACKET_READ(field_packet, stmt->conn)) {
+ ret = FAIL;
+ break;
+ }
}
+ PACKET_FREE(field_packet);
}
- PACKET_FREE(field_packet);
DBG_RETURN(ret);
}