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

ext/mssql/php_mssql.c

index 5ad9bc31bd233eb7709de06ec0fc66036c380baf..6dbc0d4d3e1f4f43e668fb9c18a3eb8bfa849b30 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: