summaryrefslogtreecommitdiff
path: root/ext/mssql/php_mssql.c
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2008-12-10 20:54:47 +0000
committerIlia Alshanetsky <iliaa@php.net>2008-12-10 20:54:47 +0000
commit8424c9047685ae7a2e4e7de4ed93a23ec7514ff6 (patch)
treeba8316ddde67ae620c9b9c8aff05fbaec15a5ad8 /ext/mssql/php_mssql.c
parentc0defbdc818330e79eadacd543d812d2dbede041 (diff)
downloadphp-git-8424c9047685ae7a2e4e7de4ed93a23ec7514ff6.tar.gz
MFB: Fixed bug #46798 (Crash in mssql extension when retrieving a NULL value
inside a binary or image column type)
Diffstat (limited to 'ext/mssql/php_mssql.c')
-rw-r--r--ext/mssql/php_mssql.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/ext/mssql/php_mssql.c b/ext/mssql/php_mssql.c
index c91b98d7dd..b9a85ad803 100644
--- a/ext/mssql/php_mssql.c
+++ b/ext/mssql/php_mssql.c
@@ -876,11 +876,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: