sfox Thu Mar 19 22:15:04 2009 UTC
Modified files:
/php-src/ext/pdo_dblib dblib_driver.c dblib_stmt.c
Log:
- Fix bug #38805 ( PDO Truncates Text from SQL Server Text Data Type Field)
- Bring behaviour into line with ext/mssql
- Several memleaks plugged
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo_dblib/dblib_driver.c?r1=1.18&r2=1.19&diff_format=u
Index: php-src/ext/pdo_dblib/dblib_driver.c
diff -u php-src/ext/pdo_dblib/dblib_driver.c:1.18
php-src/ext/pdo_dblib/dblib_driver.c:1.19
--- php-src/ext/pdo_dblib/dblib_driver.c:1.18 Tue Mar 10 23:39:28 2009
+++ php-src/ext/pdo_dblib/dblib_driver.c Thu Mar 19 22:15:03 2009
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: dblib_driver.c,v 1.18 2009/03/10 23:39:28 helly Exp $ */
+/* $Id: dblib_driver.c,v 1.19 2009/03/19 22:15:03 sfox Exp $ */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -229,7 +229,11 @@
if (H->link == NULL) {
goto cleanup;
}
-
+
+ if (DBSETOPT(H->link, DBTEXTLIMIT, "2147483647") == FAIL) {
+ goto cleanup;
+ }
+
if (vars[3].optval && FAIL == dbuse(H->link, vars[3].optval)) {
goto cleanup;
}
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo_dblib/dblib_stmt.c?r1=1.13&r2=1.14&diff_format=u
Index: php-src/ext/pdo_dblib/dblib_stmt.c
diff -u php-src/ext/pdo_dblib/dblib_stmt.c:1.13
php-src/ext/pdo_dblib/dblib_stmt.c:1.14
--- php-src/ext/pdo_dblib/dblib_stmt.c:1.13 Tue Mar 10 23:39:28 2009
+++ php-src/ext/pdo_dblib/dblib_stmt.c Thu Mar 19 22:15:03 2009
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: dblib_stmt.c,v 1.13 2009/03/10 23:39:28 helly Exp $ */
+/* $Id: dblib_stmt.c,v 1.14 2009/03/19 22:15:03 sfox Exp $ */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -113,18 +113,27 @@
stmt->column_count = S->ncols;
for (i = 0, j = 0; i < S->ncols; i++) {
+ char *tmp = NULL;
+
S->cols[i].coltype = dbcoltype(H->link, i+1);
- S->cols[i].name = dbcolname(H->link, i+1);
- if (S->cols[i].name) {
- S->cols[i].name = estrdup(S->cols[i].name);
- } else if (j) {
- spprintf(&S->cols[i].name, 0, "computed%d",
j++);
- } else {
- S->cols[i].name = estrdup("computed");
- j++;
+ S->cols[i].name = (char*)dbcolname(H->link, i+1);
+
+ if (!strlen(S->cols[i].name)) {
+ if (j) {
+ spprintf(&tmp, 0, "computed%d", j++);
+ strlcpy(S->cols[i].name, tmp,
strlen(tmp)+1);
+ efree(tmp);
+ } else {
+ S->cols[i].name = "computed";
+ j++;
+ }
}
- S->cols[i].source = dbcolsource(H->link, i+1);
- S->cols[i].source = estrdup(S->cols[i].source ?
S->cols[i].source : "");
+
+ S->cols[i].source = (char*)dbcolsource(H->link, i+1);
+ tmp = estrdup(S->cols[i].source ? S->cols[i].source :
"");
+ S->cols[i].source = tmp;
+ efree(tmp);
+
S->cols[i].maxlen = dbcollen(H->link, i+1);
}
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php