cvs: php-src /ext/sqlite sqlite.c
| From: | Ilia Alshanetsky | Date: | Mon, 17 Oct 2005 14:29:24 +0000 |
| Subject: | cvs: php-src /ext/sqlite sqlite.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-34620@lists.php.net to get a copy of this message | ||
iliaa Mon Oct 17 10:29:24 2005 EDT
Modified files:
/php-src/ext/sqlite sqlite.c
Log:
Fixed bug #34884 (Possible crash in ext/sqlite when sqlite.assoc_case is
being used).
http://cvs.php.net/diff.php/php-src/ext/sqlite/sqlite.c?r1=1.172&r2=1.173&ty=u
Index: php-src/ext/sqlite/sqlite.c
diff -u php-src/ext/sqlite/sqlite.c:1.172 php-src/ext/sqlite/sqlite.c:1.173
--- php-src/ext/sqlite/sqlite.c:1.172 Thu Sep 8 17:07:26 2005
+++ php-src/ext/sqlite/sqlite.c Mon Oct 17 10:29:20 2005
@@ -17,7 +17,7 @@
| Marcus Boerger <helly@php.net> |
+----------------------------------------------------------------------+
- $Id: sqlite.c,v 1.172 2005/09/08 21:07:26 iliaa Exp $
+ $Id: sqlite.c,v 1.173 2005/10/17 14:29:20 iliaa Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -1126,7 +1126,7 @@
{
php_info_print_table_start();
php_info_print_table_header(2, "SQLite support", "enabled");
- php_info_print_table_row(2, "PECL Module version", PHP_SQLITE_MODULE_VERSION " $Id:
sqlite.c,v 1.172 2005/09/08 21:07:26 iliaa Exp $");
+ php_info_print_table_row(2, "PECL Module version", PHP_SQLITE_MODULE_VERSION " $Id:
sqlite.c,v 1.173 2005/10/17 14:29:20 iliaa Exp $");
php_info_print_table_row(2, "SQLite Library", sqlite_libversion());
php_info_print_table_row(2, "SQLite Encoding", sqlite_libencoding());
php_info_print_table_end();
@@ -1441,14 +1441,13 @@
/* first row - lets copy the column names */
rres->col_names = safe_emalloc(rres->ncolumns, sizeof(char *), 0);
for (i = 0; i < rres->ncolumns; i++) {
- colname = (char*)colnames[i];
+ rres->col_names[i] = estrdup((char*)colnames[i]);
if (SQLITE_G(assoc_case) == 1) {
- php_sqlite_strtoupper(colname);
+ php_sqlite_strtoupper(rres->col_names[i]);
} else if (SQLITE_G(assoc_case) == 2) {
- php_sqlite_strtolower(colname);
+ php_sqlite_strtolower(rres->col_names[i]);
}
- rres->col_names[i] = estrdup(colname);
}
if (!rres->buffered) {
/* non buffered mode - also fetch memory for on single row */
@@ -1687,7 +1686,7 @@
array_init(return_value);
for (i = 0; i < ncols; i++) {
- char *colname = (char *)colnames[i];
+ char *colname = estrdup((char *)colnames[i]);
if (SQLITE_G(assoc_case) == 1) {
php_sqlite_strtoupper(colname);
@@ -1717,6 +1716,7 @@
add_index_string(return_value, i, colnames[ncols + i] ? (char *)colnames[ncols + i] :
"", 1);
}
}
+ efree(colname);
}
done: