]> granicus.if.org Git - php/commitdiff
Segfault fixing!
authorWez Furlong <wez@php.net>
Thu, 17 Apr 2003 16:36:59 +0000 (16:36 +0000)
committerWez Furlong <wez@php.net>
Thu, 17 Apr 2003 16:36:59 +0000 (16:36 +0000)
ext/sqlite/sqlite.c
ext/sqlite/sqlite.php

index 3dd5211f5f5a7089216076b096b05549af9be5ff..0a799a71a8928924a77ac188828bb311080441f4 100644 (file)
@@ -131,8 +131,7 @@ static void php_sqlite_function_callback(sqlite_func *func, int argc, const char
                for (i = 0; i < argc-1; i++) {
                        zargs[i] = emalloc(sizeof(zval *));
                        MAKE_STD_ZVAL(*zargs[i]);
-
-                       ZVAL_STRING(*zargs[i], (char*)argv[i+1], 0);
+                       ZVAL_STRING(*zargs[i], (char*)argv[i+1], 1);
                }
        }
 
@@ -174,11 +173,14 @@ static void php_sqlite_function_callback(sqlite_func *func, int argc, const char
 
        if (zargs) {
                for (i = 0; i < argc-1; i++) {
+                       zval_ptr_dtor(zargs[i]);
                        efree(zargs[i]);
                }
                efree(zargs);
        }
 }
+
+
 PHP_MINIT_FUNCTION(sqlite)
 {
        le_sqlite_db = zend_register_list_destructors_ex(php_sqlite_db_dtor, NULL, "sqlite database", module_number);
@@ -273,7 +275,7 @@ PHP_FUNCTION(sqlite_query)
        long sql_len;
        struct php_sqlite_result res, *rres;
        int ret;
-       char *errtext;
+       char *errtext = NULL;
 
        if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sr", &sql, &sql_len, &zdb)) {
                return;
index ef17ae9b06e0f028d2c59ce3957ea595e09e5237..7b67cd3cfc82706a1f59e82581a46a22ad4ad8b7 100644 (file)
@@ -1,5 +1,7 @@
 <?php
-dl("sqlite.so");
+if (!extension_loaded("sqlite")) {
+       dl("sqlite.so");
+}
 
 debug_zval_dump(sqlite_libversion());
 debug_zval_dump(sqlite_libencoding());
@@ -9,7 +11,7 @@ $s = sqlite_open("weztest.sqlite", 0666, $err);
 debug_zval_dump($err);
 debug_zval_dump($s);
 
-//$r = sqlite_query("create table foo (a INTEGER PRIMARY KEY, b INTEGER )", $s);
+$r = sqlite_query("create table foo (a INTEGER PRIMARY KEY, b INTEGER )", $s);
 $r = sqlite_query("select *, php('md5', sql) as o from sqlite_master", $s);
 debug_zval_dump($r);
 debug_zval_dump(sqlite_num_rows($r));