]> granicus.if.org Git - php/commitdiff
Fix 2 potential segfaults.
authorWez Furlong <wez@php.net>
Sat, 19 Apr 2003 10:28:45 +0000 (10:28 +0000)
committerWez Furlong <wez@php.net>
Sat, 19 Apr 2003 10:28:45 +0000 (10:28 +0000)
ext/sqlite/sqlite.c

index 630e701374d8c51f51a3234b3ca9e60944ecb5d8..da712c1cb14bff2f475e2be3953a208b5c42a4ca 100644 (file)
@@ -144,7 +144,9 @@ static void real_result_dtor(struct php_sqlite_result *res)
        for (i = 0; i < res->nrows; i++) {
                base = i * res->ncolumns;
                for (j = 0; j < res->ncolumns; j++) {
-                       efree(res->table[base + j]);
+                       if (res->table[base + j] != NULL) {
+                               efree(res->table[base + j]);
+                       }
                }
        }
        if (res->table) {
@@ -465,7 +467,6 @@ PHP_FUNCTION(sqlite_popen)
 }
 /* }}} */
 
-
 /* {{{ proto resource sqlite_open(string filename [, int mode, string &errmessage])
    Opens an SQLite database.  Will create the database if it does not exist */
 PHP_FUNCTION(sqlite_open)
@@ -891,7 +892,7 @@ PHP_FUNCTION(sqlite_field_name)
                        RETURN_FALSE;
                }
 
-               RETURN_STRING(res->table[field], 1);
+               RETURN_STRING(res->col_names[field], 1);
        } else {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Field name not available for unbuffered queries");
                RETURN_FALSE;