diff options
| author | Ilia Alshanetsky <iliaa@php.net> | 2008-12-10 20:54:47 +0000 |
|---|---|---|
| committer | Ilia Alshanetsky <iliaa@php.net> | 2008-12-10 20:54:47 +0000 |
| commit | 8424c9047685ae7a2e4e7de4ed93a23ec7514ff6 (patch) | |
| tree | ba8316ddde67ae620c9b9c8aff05fbaec15a5ad8 /ext/mssql/php_mssql.c | |
| parent | c0defbdc818330e79eadacd543d812d2dbede041 (diff) | |
| download | php-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.c | 13 |
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: |
