Skip to content

Commit b7e6cfc

Browse files
committed
Get rid of CAP_XSQLVAR_LEN
1 parent 50ac79f commit b7e6cfc

File tree

3 files changed

+12
-16
lines changed

3 files changed

+12
-16
lines changed

ibase_query.c

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,6 @@
5050
#define FETCH_ROW 1
5151
#define FETCH_ARRAY 2
5252

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-
5753
typedef struct {
5854
unsigned short vary_length;
5955
char vary_string[1];
@@ -1496,12 +1492,14 @@ static int _php_ibase_arr_zval(zval *ar_zval, char *data, zend_ulong data_size,
14961492
}
14971493
/* }}} */
14981494

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)
15001496
{
15011497
char buf[METADATALENGTH + 3 + 1]; // _00 + \0
15021498
zval t2;
15031499
int i = 0;
15041500
char const *base = "FIELD"; /* use 'FIELD' if name is empty */
1501+
1502+
size_t alias_len = strlen(alias);
15051503
size_t alias_len_w_suff = alias_len + 3;
15061504

15071505
switch (*alias) {
@@ -1932,14 +1930,14 @@ static void _php_ibase_field_info(zval *return_value, ibase_query *ib_query, int
19321930
} else {
19331931
#endif
19341932
// 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));
19371935

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));
19401938

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));
19431941
#if FB_API_VER >= 40
19441942
}
19451943
#endif
@@ -2236,8 +2234,7 @@ static int _php_ibase_alloc_ht_aliases(ibase_query *ib_query)
22362234
for(size_t i = 0; i < ib_query->out_fields_count; i++){
22372235
XSQLVAR *var = &ib_query->out_sqlda->sqlvar[i];
22382236

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);
22412238
}
22422239
#if FB_API_VER >= 40
22432240
}

pdo_firebird_utils.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,7 @@ extern "C" int fb_insert_aliases(void *master_ptr, ISC_STATUS* st, ibase_query *
9999

100100
for (unsigned i = 0; i < cols; ++i)
101101
{
102-
_php_ibase_insert_alias(ib_query->ht_aliases,
103-
meta->getAlias(&status, i), strlen(meta->getAlias(&status, i)));
102+
_php_ibase_insert_alias(ib_query->ht_aliases, meta->getAlias(&status, i));
104103
}
105104
}
106105
catch (const Firebird::FbException& error)

php_ibase_includes.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ void php_ibase_service_minit(INIT_FUNC_ARGS);
259259
extern "C" {
260260
#endif
261261

262-
void _php_ibase_insert_alias(HashTable *ht, const char *alias, size_t alias_len);
262+
void _php_ibase_insert_alias(HashTable *ht, const char *alias);
263263
static int _php_ibase_get_vars_count(ibase_query *ib_query);
264264
static int _php_ibase_fetch_query_res(zval *from, ibase_query **ib_query);
265265
static int _php_ibase_alloc_ht_aliases(ibase_query *ib_query);

0 commit comments

Comments
 (0)