diff options
author | Felipe Pena <felipe@php.net> | 2010-12-03 21:05:44 +0000 |
---|---|---|
committer | Felipe Pena <felipe@php.net> | 2010-12-03 21:05:44 +0000 |
commit | 689d1d9e4bf69289d1a2446cc32cb53b76e9cf4e (patch) | |
tree | 3d39966f93da267859a08915c1ecee9dcd2538e0 /ext/sqlite3/sqlite3.c | |
parent | 686c7fec26c7721bb92b836cc40d1232be497334 (diff) | |
download | php-git-689d1d9e4bf69289d1a2446cc32cb53b76e9cf4e.tar.gz |
- Fixed bug #53463 (sqlite3 columnName() segfaults on bad column_number)
Diffstat (limited to 'ext/sqlite3/sqlite3.c')
-rw-r--r-- | ext/sqlite3/sqlite3.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/ext/sqlite3/sqlite3.c b/ext/sqlite3/sqlite3.c index 8dcce7ca65..c1813673a8 100644 --- a/ext/sqlite3/sqlite3.c +++ b/ext/sqlite3/sqlite3.c @@ -1532,6 +1532,7 @@ PHP_METHOD(sqlite3result, columnName) php_sqlite3_result *result_obj; zval *object = getThis(); long column = 0; + char *column_name; result_obj = (php_sqlite3_result *)zend_object_store_get_object(object TSRMLS_CC); SQLITE3_CHECK_INITIALIZED(result_obj->db_obj, result_obj->stmt_obj->initialised, SQLite3Result) @@ -1539,8 +1540,13 @@ PHP_METHOD(sqlite3result, columnName) if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &column) == FAILURE) { return; } + column_name = (char*) sqlite3_column_name(result_obj->stmt_obj->stmt, column); - RETVAL_STRING((char*)sqlite3_column_name(result_obj->stmt_obj->stmt, column), 1); + if (column_name == NULL) { + RETURN_FALSE; + } + + RETVAL_STRING(column_name, 1); } /* }}} */ |