]> granicus.if.org Git - php/commitdiff
const pointer was used in non-const context
authorAlexey Zakhlestin <indeyets@php.net>
Wed, 1 Apr 2009 11:31:54 +0000 (11:31 +0000)
committerAlexey Zakhlestin <indeyets@php.net>
Wed, 1 Apr 2009 11:31:54 +0000 (11:31 +0000)
ext/pdo_sqlite/sqlite_statement.c

index 18aaddce9d5a8524c7154ca56aa3acc23b0b239c..88cef6a8e1fc231814bbe4653a208aaf401c3abd 100644 (file)
@@ -282,6 +282,8 @@ static int pdo_sqlite_stmt_get_col(pdo_stmt_t *stmt, int colno, char **ptr, unsi
 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 @@ static int pdo_sqlite_stmt_col_meta(pdo_stmt_t *stmt, long colno, zval *return_v
                        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