From 0e71e11ffce9b2e65cfba86ee7e5f26579a3f8b2 Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Mon, 10 Apr 2023 13:44:47 +0100 Subject: [PATCH 1/2] ext/pdo_firebird: Use new zend_string_starts_with_*_ci() API --- ext/pdo_firebird/firebird_statement.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ext/pdo_firebird/firebird_statement.c b/ext/pdo_firebird/firebird_statement.c index 4ad51ab483d96..6398549372600 100644 --- a/ext/pdo_firebird/firebird_statement.c +++ b/ext/pdo_firebird/firebird_statement.c @@ -571,10 +571,10 @@ static int firebird_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_dat for (i = 0; i < sqlda->sqld; ++i) { XSQLVAR *var = &sqlda->sqlvar[i]; - if ((var->aliasname_length && !strncasecmp(ZSTR_VAL(param->name), var->aliasname, - min(ZSTR_LEN(param->name), var->aliasname_length))) - || (var->sqlname_length && !strncasecmp(ZSTR_VAL(param->name), var->sqlname, - min(ZSTR_LEN(param->name), var->sqlname_length)))) { + if ( + zend_string_starts_with_cstr_ci(param->name, var->aliasname, var->aliasname_length) + || zend_string_starts_with_cstr_ci(param->name, var->sqlname, var->sqlname_length) + ) { param->paramno = i; break; } From ec8ded878ba7cde008443236eaf625a307de8bc2 Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Wed, 12 Apr 2023 15:18:02 +0100 Subject: [PATCH 2/2] fix? --- ext/pdo_firebird/firebird_statement.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ext/pdo_firebird/firebird_statement.c b/ext/pdo_firebird/firebird_statement.c index 6398549372600..7b19f41731b9b 100644 --- a/ext/pdo_firebird/firebird_statement.c +++ b/ext/pdo_firebird/firebird_statement.c @@ -571,9 +571,13 @@ static int firebird_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_dat for (i = 0; i < sqlda->sqld; ++i) { XSQLVAR *var = &sqlda->sqlvar[i]; - if ( - zend_string_starts_with_cstr_ci(param->name, var->aliasname, var->aliasname_length) - || zend_string_starts_with_cstr_ci(param->name, var->sqlname, var->sqlname_length) + if ( ( + var->aliasname_length + && zend_string_starts_with_cstr_ci(param->name, var->aliasname, var->aliasname_length) + ) || ( + var->sqlname_length + && zend_string_starts_with_cstr_ci(param->name, var->sqlname, var->sqlname_length) + ) ) { param->paramno = i; break;