diff options
| author | Edin Kadribasic <edink@php.net> | 2005-09-03 23:50:25 +0000 |
|---|---|---|
| committer | Edin Kadribasic <edink@php.net> | 2005-09-03 23:50:25 +0000 |
| commit | 38317bb3bd0dd41125ceb683964dac1fd4610516 (patch) | |
| tree | 31ef5faa9b33511a70eebc248f36d58717fd30fb | |
| parent | 6bc126681c19a058c7624898320f125e9f0593e4 (diff) | |
| download | php-git-38317bb3bd0dd41125ceb683964dac1fd4610516.tar.gz | |
Don't crash on invalid parameter #34203 (Wez)
| -rw-r--r-- | ext/pdo_pgsql/pgsql_statement.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/ext/pdo_pgsql/pgsql_statement.c b/ext/pdo_pgsql/pgsql_statement.c index 4ad96b8adb..9e6420eeb4 100644 --- a/ext/pdo_pgsql/pgsql_statement.c +++ b/ext/pdo_pgsql/pgsql_statement.c @@ -198,15 +198,17 @@ static int pgsql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_data * sizeof(int)); } - if (PDO_PARAM_TYPE(param->param_type) == PDO_PARAM_NULL || - Z_TYPE_P(param->parameter) == IS_NULL) { - S->param_values[param->paramno] = NULL; - S->param_lengths[param->paramno] = 0; - } else { - convert_to_string(param->parameter); - S->param_values[param->paramno] = Z_STRVAL_P(param->parameter); - S->param_lengths[param->paramno] = Z_STRLEN_P(param->parameter); - S->param_formats[param->paramno] = 1; + if (param->paramno >= 0) { + if (PDO_PARAM_TYPE(param->param_type) == PDO_PARAM_NULL || + Z_TYPE_P(param->parameter) == IS_NULL) { + S->param_values[param->paramno] = NULL; + S->param_lengths[param->paramno] = 0; + } else { + convert_to_string(param->parameter); + S->param_values[param->paramno] = Z_STRVAL_P(param->parameter); + S->param_lengths[param->paramno] = Z_STRLEN_P(param->parameter); + S->param_formats[param->paramno] = 1; + } } break; } |
