cvs: php-src(PHP_4_3) /ext/mssql php_mssql.c
| From: | Frank M. Kromann | Date: | Fri, 19 Mar 2004 18:48:18 +0000 |
| Subject: | cvs: php-src(PHP_4_3) /ext/mssql php_mssql.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-26726@lists.php.net to get a copy of this message | ||
fmk Fri Mar 19 13:48:18 2004 EDT
Modified files: (Branch: PHP_4_3)
/php-src/ext/mssql php_mssql.c
Log:
MFH Fix for #26589. Crash when selecting many columns of type Money
http://cvs.php.net/diff.php/php-src/ext/mssql/php_mssql.c?r1=1.86.2.28&r2=1.86.2.29&ty=u
Index: php-src/ext/mssql/php_mssql.c
diff -u php-src/ext/mssql/php_mssql.c:1.86.2.28 php-src/ext/mssql/php_mssql.c:1.86.2.29
--- php-src/ext/mssql/php_mssql.c:1.86.2.28 Mon Mar 15 14:45:39 2004
+++ php-src/ext/mssql/php_mssql.c Fri Mar 19 13:47:02 2004
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_mssql.c,v 1.86.2.28 2004/03/15 19:45:39 fmk Exp $ */
+/* $Id: php_mssql.c,v 1.86.2.29 2004/03/19 18:47:02 fmk Exp $ */
#ifdef COMPILE_DL_MSSQL
#define HAVE_MSSQL 1
@@ -796,10 +796,13 @@
Z_TYPE_P(result) = IS_STRING;
break;
}
+ case SQLMONEY4:
case SQLFLT4:
Z_DVAL_P(result) = (double) floatcol4(offset);
Z_TYPE_P(result) = IS_DOUBLE;
break;
+ case SQLMONEY:
+ case SQLMONEYN:
case SQLFLT8:
Z_DVAL_P(result) = (double) floatcol8(offset);
Z_TYPE_P(result) = IS_DOUBLE;
@@ -898,8 +901,19 @@
if ((column_type != SQLDATETIME && column_type != SQLDATETIM4) ||
MS_SQL_G(datetimeconvert)) {
- if (column_type == SQLDATETIM4) res_length += 14;
- if (column_type == SQLDATETIME) res_length += 10;
+ switch (column_type) {
+ case SQLDATETIM4 :
+ res_length += 14;
+ break;
+ case SQLDATETIME :
+ res_length += 10;
+ break;
+ case SQLMONEY :
+ case SQLMONEY4 :
+ case SQLMONEYN :
+ res_length += 5;
+ break;
+ }
res_buf = (unsigned char *) emalloc(res_length+1);
res_length = dbconvert(NULL,coltype(offset),dbdata(mssql_ptr->link,offset), res_length,
SQLCHAR, res_buf, -1);
@@ -956,6 +970,9 @@
case SQLFLT4:
case SQLFLT8:
case SQLFLTN:
+ case SQLMONEY4:
+ case SQLMONEY:
+ case SQLMONEYN:
convert_to_double_ex(&bind->zval);
Z_DVAL_P(bind->zval) = *((double *)(dbretdata(mssql_ptr->link,i)));
break;