iliaa Wed Oct 19 10:11:27 2005 EDT Modified files: /php-src/ext/pdo_mysql mysql_statement.c Log: Fixed bug #34623 (Crash in pdo_mysql on longtext fields). http://cvs.php.net/diff.php/php-src/ext/pdo_mysql/mysql_statement.c?r1=1.50&r2=1.51&ty=u Index: php-src/ext/pdo_mysql/mysql_statement.c diff -u php-src/ext/pdo_mysql/mysql_statement.c:1.50 php-src/ext/pdo_mysql/mysql_statement.c:1.51 --- php-src/ext/pdo_mysql/mysql_statement.c:1.50 Thu Sep 1 10:31:34 2005 +++ php-src/ext/pdo_mysql/mysql_statement.c Wed Oct 19 10:11:25 2005 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mysql_statement.c,v 1.50 2005/09/01 14:31:34 gschlossnagle Exp $ */ +/* $Id: mysql_statement.c,v 1.51 2005/10/19 14:11:25 iliaa Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -71,6 +71,8 @@ return 1; } +#define PDO_MYSQL_MAX_BUFFER 1024*1024 /* 1 megabyte */ + static int pdo_mysql_stmt_execute(pdo_stmt_t *stmt TSRMLS_DC) { pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; @@ -141,6 +143,10 @@ S->bound_result[i].buffer_length = S->fields[i].max_length? S->fields[i].max_length: S->fields[i].length; + /* work-around for longtext and alike */ + if (S->bound_result[i].buffer_length > PDO_MYSQL_MAX_BUFFER) { + S->bound_result[i].buffer_length = PDO_MYSQL_MAX_BUFFER; + } } S->bound_result[i].buffer = emalloc(S->bound_result[i].buffer_length); S->bound_result[i].is_null = &S->out_null[i];
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php