]> granicus.if.org Git - php/commitdiff
Fix for #28512. Allocate enough space to store data
authorFrank M. Kromann <fmk@php.net>
Wed, 30 Jun 2004 19:46:57 +0000 (19:46 +0000)
committerFrank M. Kromann <fmk@php.net>
Wed, 30 Jun 2004 19:46:57 +0000 (19:46 +0000)
ext/mssql/php_mssql.c

index 7e501934e30abab4c3392f3dbfeb3424e0d8e260..e99026b1d7da95673c27d41251c0ce3ae08a40c4 100644 (file)
@@ -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;
                        }