From 0f51787f74f91d6163ef1f32f6c5756226c10a97 Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Wed, 10 Dec 2008 20:53:44 +0000 Subject: Fixed bug #46798 (Crash in mssql extension when retrieving a NULL value inside a binary or image column type) --- ext/mssql/php_mssql.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'ext/mssql/php_mssql.c') diff --git a/ext/mssql/php_mssql.c b/ext/mssql/php_mssql.c index 5ad9bc31bd..6dbc0d4d3e 100644 --- a/ext/mssql/php_mssql.c +++ b/ext/mssql/php_mssql.c @@ -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: -- cgit v1.2.1