]> granicus.if.org Git - php/commitdiff
MFB: Fixed bug #46798 (Crash in mssql extension when retrieving a NULL value
authorIlia Alshanetsky <iliaa@php.net>
Wed, 10 Dec 2008 20:53:58 +0000 (20:53 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Wed, 10 Dec 2008 20:53:58 +0000 (20:53 +0000)
inside a binary or image column type)

ext/mssql/php_mssql.c

index 08f6e4242e3cfb0233960d37df3396b4ba85f92f..d2426865c03fa3676ff19b108de7c014f4428543 100644 (file)
@@ -977,11 +977,14 @@ static void php_mssql_get_column_content_with_type(mssql_link *mssql_ptr,int off
                        unsigned char *res_buf;
                        int res_length = dbdatlen(mssql_ptr->link, offset);
 
-                       res_buf = (unsigned char *) emalloc(res_length+1);
-                       bin = ((DBBINARY *)dbdata(mssql_ptr->link, offset));
-                       memcpy(res_buf,bin,res_length);
-                       res_buf[res_length] = '\0';
-                       ZVAL_STRINGL(result, res_buf, res_length, 0);
+                       if (!res_length) {
+                               ZVAL_NULL(result);
+                       } else {
+                               bin = ((DBBINARY *)dbdata(mssql_ptr->link, offset));
+                               res_buf = (unsigned char *) emalloc(res_length+1);
+                               memcpy(res_buf,bin,res_length);
+                               res_buf[res_length] = '\0';
+                               ZVAL_STRINGL(result, res_buf, res_length, 0);
                        }
                        break;
                case SQLNUMERIC: