diff options
author | Frank M. Kromann <fmk@php.net> | 2004-06-30 19:46:57 +0000 |
---|---|---|
committer | Frank M. Kromann <fmk@php.net> | 2004-06-30 19:46:57 +0000 |
commit | 2067ce4079e7ec7820e848a63021e49c1c93319d (patch) | |
tree | 2aa41ea71ffa6c529aab8f579b81af6d3127afe0 /ext/mssql/php_mssql.c | |
parent | bdfd8c60ea5332738fc8705c5a66d854591030f7 (diff) | |
download | php-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.c | 21 |
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; } |