]> granicus.if.org Git - php/commitdiff
MFB: fix crash/leak in bug #38710
authorStanislav Malyshev <stas@php.net>
Thu, 8 Mar 2007 22:57:02 +0000 (22:57 +0000)
committerStanislav Malyshev <stas@php.net>
Thu, 8 Mar 2007 22:57:02 +0000 (22:57 +0000)
ext/mysqli/mysqli_api.c

index 41ccff187bd3a534e785cb3904695d0e613c49ca..77af19f856aa7cbfc0a04c482c2071b6626323ae 100644 (file)
@@ -764,7 +764,16 @@ PHP_FUNCTION(mysqli_stmt_fetch)
                                                }
 #endif
                                                else {
-                                                       ZVAL_UTF8_STRINGL(stmt->result.vars[i], stmt->result.buf[i].val, stmt->result.buf[i].buflen, ZSTR_DUPLICATE);
+#if defined(MYSQL_DATA_TRUNCATED) && MYSQL_VERSION_ID > 50002
+                                                       if(ret == MYSQL_DATA_TRUNCATED && *(stmt->stmt->bind[i].error) != 0) {
+                                                               /* result was truncated */
+                                                               ZVAL_UTF8_STRINGL(stmt->result.vars[i], stmt->result.buf[i].val, stmt->stmt->bind[i].buffer_length, ZSTR_DUPLICATE);
+                                                       } else {
+#else
+                                                       {
+#endif
+                                                               ZVAL_UTF8_STRINGL(stmt->result.vars[i], stmt->result.buf[i].val, stmt->result.buf[i].buflen, ZSTR_DUPLICATE);
+                                                       }
 
                                                } 
                                                break;