summaryrefslogtreecommitdiff
path: root/ext/mssql/php_mssql.c
diff options
context:
space:
mode:
authorFrank M. Kromann <fmk@php.net>2004-06-30 19:46:57 +0000
committerFrank M. Kromann <fmk@php.net>2004-06-30 19:46:57 +0000
commit2067ce4079e7ec7820e848a63021e49c1c93319d (patch)
tree2aa41ea71ffa6c529aab8f579b81af6d3127afe0 /ext/mssql/php_mssql.c
parentbdfd8c60ea5332738fc8705c5a66d854591030f7 (diff)
downloadphp-git-2067ce4079e7ec7820e848a63021e49c1c93319d.tar.gz
Fix for #28512. Allocate enough space to store data
Diffstat (limited to 'ext/mssql/php_mssql.c')
-rw-r--r--ext/mssql/php_mssql.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/ext/mssql/php_mssql.c b/ext/mssql/php_mssql.c
index 7e501934e3..e99026b1d7 100644
--- a/ext/mssql/php_mssql.c
+++ b/ext/mssql/php_mssql.c
@@ -843,9 +843,22 @@ static void php_mssql_get_column_content_with_type(mssql_link *mssql_ptr,int off
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 :
+ case SQLDECIMAL :
+ case SQLNUMERIC :
+ 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);
} else {
@@ -909,6 +922,8 @@ static void php_mssql_get_column_content_without_type(mssql_link *mssql_ptr,int
case SQLMONEY :
case SQLMONEY4 :
case SQLMONEYN :
+ case SQLDECIMAL :
+ case SQLNUMERIC :
res_length += 5;
break;
}