Re: cvs: php-src /ext/pdo_sqlite sqlite_statement.c

From: Date: Wed, 01 Apr 2009 13:51:13 +0000
Subject: Re: cvs: php-src /ext/pdo_sqlite sqlite_statement.c
References: 1  Groups: php.cvs 
Request: Send a blank email to php-cvs+get-56847@lists.php.net to get a copy of this message
It's valid to discard the const qualifier, add_assoc_string runs estrndup to take a copy of the return value anyway. You've also made the code less readable and introduced a memory leak for str. So unless I've missed something can you revert this please. Scott Alexey Zakhlestin wrote: > indeyets Wed Apr 1 11:31:54 2009 UTC > > Modified files: > /php-src/ext/pdo_sqlite sqlite_statement.c > Log: > const pointer was used in non-const context > > > http://cvs.php.net/viewvc.cgi/php-src/ext/pdo_sqlite/sqlite_statement.c?r1=1.29&r2=1.30&diff_format=u > Index: php-src/ext/pdo_sqlite/sqlite_statement.c > diff -u php-src/ext/pdo_sqlite/sqlite_statement.c:1.29 > php-src/ext/pdo_sqlite/sqlite_statement.c:1.30 > --- php-src/ext/pdo_sqlite/sqlite_statement.c:1.29 Tue Mar 10 23:39:31 2009 > +++ php-src/ext/pdo_sqlite/sqlite_statement.c Wed Apr 1 11:31:54 2009 > @@ -16,7 +16,7 @@ > +----------------------------------------------------------------------+ > */ > > -/* $Id: sqlite_statement.c,v 1.29 2009/03/10 23:39:31 helly Exp $ */ > +/* $Id: sqlite_statement.c,v 1.30 2009/04/01 11:31:54 indeyets Exp $ */ > > #ifdef HAVE_CONFIG_H > #include "config.h" > @@ -282,6 +282,8 @@ > static int pdo_sqlite_stmt_col_meta(pdo_stmt_t *stmt, long colno, zval *return_value > TSRMLS_DC) > { > pdo_sqlite_stmt *S = (pdo_sqlite_stmt*)stmt->driver_data; > + const char *_str; > + size_t _str_len; > char *str; > zval *flags; > > @@ -318,14 +320,20 @@ > break; > } > > - str = (char*)sqlite3_column_decltype(S->stmt, colno); > - if (str) { > + _str = sqlite3_column_decltype(S->stmt, colno); > + _str_len = strlen(_str); > + if (_str) { > + str = emalloc(_str_len); > + strcpy(str, _str); > add_assoc_string(return_value, "sqlite:decl_type", str, 1); > } > > #ifdef SQLITE_ENABLE_COLUMN_METADATA > - str = sqlite3_column_table_name(S->stmt, colno); > - if (str) { > + _str = sqlite3_column_table_name(S->stmt, colno); > + _str_len = strlen(_str); > + if (_str) { > + str = emalloc(_str_len); > + strcpy(str, _str); > add_assoc_string(return_value, "table", str, 1); > } > #endif > >

« previous php.cvs (#56847) next »