diff options
| author | Ilia Alshanetsky <iliaa@php.net> | 2003-08-14 14:37:33 +0000 |
|---|---|---|
| committer | Ilia Alshanetsky <iliaa@php.net> | 2003-08-14 14:37:33 +0000 |
| commit | 33d7423950cb69ed7e75e9a26e42262dba383824 (patch) | |
| tree | 8182a9fa0c69b0ebe5ab14c92d2465a3c793d082 /ext/odbc/php_odbc.c | |
| parent | 30c26df3489fe71b02f29ca310567ca2b0831204 (diff) | |
| download | php-git-33d7423950cb69ed7e75e9a26e42262dba383824.tar.gz | |
MFH: Fixed bug #25081 (odbc_fetch_array() may mangle numeric fields).
Diffstat (limited to 'ext/odbc/php_odbc.c')
| -rw-r--r-- | ext/odbc/php_odbc.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/ext/odbc/php_odbc.c b/ext/odbc/php_odbc.c index b8c5a031e6..49d40e55e2 100644 --- a/ext/odbc/php_odbc.c +++ b/ext/odbc/php_odbc.c @@ -1459,8 +1459,13 @@ static void php_odbc_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type) if (result_type & ODBC_NUM) { zend_hash_index_update(Z_ARRVAL_P(return_value), i, &tmp, sizeof(pval *), NULL); } else { - zend_hash_update(Z_ARRVAL_P(return_value), result->values[i].name, + if (!*(result->values[i].name)) { + zend_hash_update(Z_ARRVAL_P(return_value), Z_STRVAL_P(tmp), + Z_STRLEN_P(tmp)+1, &tmp, sizeof(pval *), NULL); + } else { + zend_hash_update(Z_ARRVAL_P(return_value), result->values[i].name, strlen(result->values[i].name)+1, &tmp, sizeof(pval *), NULL); + } } } if (buf) efree(buf); |
