|
50 | 50 | #define FETCH_ROW 1 |
51 | 51 | #define FETCH_ARRAY 2 |
52 | 52 |
|
53 | | -// Appearantly XSQLVAR len fields can come in > 31 and < 0 depending on |
54 | | -// fbclient-server combination |
55 | | -#define CAP_XSQLVAR_LEN(len, str) ((len) > 31 || (len) < 0 ? MIN(31, strlen((str))) : (len)) |
56 | | - |
57 | 53 | typedef struct { |
58 | 54 | unsigned short vary_length; |
59 | 55 | char vary_string[1]; |
@@ -1496,12 +1492,14 @@ static int _php_ibase_arr_zval(zval *ar_zval, char *data, zend_ulong data_size, |
1496 | 1492 | } |
1497 | 1493 | /* }}} */ |
1498 | 1494 |
|
1499 | | -void _php_ibase_insert_alias(HashTable *ht, const char *alias, size_t alias_len) |
| 1495 | +void _php_ibase_insert_alias(HashTable *ht, const char *alias) |
1500 | 1496 | { |
1501 | 1497 | char buf[METADATALENGTH + 3 + 1]; // _00 + \0 |
1502 | 1498 | zval t2; |
1503 | 1499 | int i = 0; |
1504 | 1500 | char const *base = "FIELD"; /* use 'FIELD' if name is empty */ |
| 1501 | + |
| 1502 | + size_t alias_len = strlen(alias); |
1505 | 1503 | size_t alias_len_w_suff = alias_len + 3; |
1506 | 1504 |
|
1507 | 1505 | switch (*alias) { |
@@ -1932,14 +1930,14 @@ static void _php_ibase_field_info(zval *return_value, ibase_query *ib_query, int |
1932 | 1930 | } else { |
1933 | 1931 | #endif |
1934 | 1932 | // Old API |
1935 | | - add_index_stringl(return_value, 0, var->sqlname, CAP_XSQLVAR_LEN(var->sqlname_length, var->sqlname)); |
1936 | | - add_assoc_stringl(return_value, "name", var->sqlname, CAP_XSQLVAR_LEN(var->sqlname_length, var->sqlname)); |
| 1933 | + add_index_stringl(return_value, 0, var->sqlname, strlen(var->sqlname)); |
| 1934 | + add_assoc_stringl(return_value, "name", var->sqlname, strlen(var->sqlname)); |
1937 | 1935 |
|
1938 | | - add_index_stringl(return_value, 1, var->aliasname, CAP_XSQLVAR_LEN(var->aliasname_length, var->aliasname)); |
1939 | | - add_assoc_stringl(return_value, "alias", var->aliasname, CAP_XSQLVAR_LEN(var->aliasname_length, var->aliasname)); |
| 1936 | + add_index_stringl(return_value, 1, var->aliasname, strlen(var->aliasname)); |
| 1937 | + add_assoc_stringl(return_value, "alias", var->aliasname, strlen(var->aliasname)); |
1940 | 1938 |
|
1941 | | - add_index_stringl(return_value, 2, var->relname, CAP_XSQLVAR_LEN(var->relname_length, var->relname)); |
1942 | | - add_assoc_stringl(return_value, "relation", var->relname, CAP_XSQLVAR_LEN(var->relname_length, var->relname)); |
| 1939 | + add_index_stringl(return_value, 2, var->relname, strlen(var->relname)); |
| 1940 | + add_assoc_stringl(return_value, "relation", var->relname, strlen(var->relname)); |
1943 | 1941 | #if FB_API_VER >= 40 |
1944 | 1942 | } |
1945 | 1943 | #endif |
@@ -2236,8 +2234,7 @@ static int _php_ibase_alloc_ht_aliases(ibase_query *ib_query) |
2236 | 2234 | for(size_t i = 0; i < ib_query->out_fields_count; i++){ |
2237 | 2235 | XSQLVAR *var = &ib_query->out_sqlda->sqlvar[i]; |
2238 | 2236 |
|
2239 | | - _php_ibase_insert_alias(ib_query->ht_aliases, |
2240 | | - var->aliasname, CAP_XSQLVAR_LEN(var->aliasname_length, var->aliasname)); |
| 2237 | + _php_ibase_insert_alias(ib_query->ht_aliases, var->aliasname); |
2241 | 2238 | } |
2242 | 2239 | #if FB_API_VER >= 40 |
2243 | 2240 | } |
|
0 commit comments