From: Edin Kadribasic Date: Sun, 6 Feb 2005 00:46:17 +0000 (+0000) Subject: Don't segault when we have placeholders but no bound params X-Git-Tag: RELEASE_0_2~72 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0d9b0606b967322611fee22c6776f2cde896642e;p=php Don't segault when we have placeholders but no bound params --- diff --git a/ext/pdo/pdo_sql_parser.c b/ext/pdo/pdo_sql_parser.c index 10484f059b..ece456c0a5 100644 --- a/ext/pdo/pdo_sql_parser.c +++ b/ext/pdo/pdo_sql_parser.c @@ -1,5 +1,5 @@ -/* Generated by re2c 0.9.3 on Thu Jan 20 22:49:12 2005 */ -#line 1 "pdo_sql_parser.re" +/* Generated by re2c 0.9.3 on Sun Feb 6 01:46:44 2005 */ +#line 1 "pdo_sql_parser.re" /* +----------------------------------------------------------------------+ | PHP Version 5 | @@ -275,6 +275,13 @@ PDO_API int pdo_parse_params(pdo_stmt_t *stmt, char *inquery, int inquery_len, params = stmt->bound_params; + /* Do we have placeholders but no bound params */ + if (bindno && !params) { + strcpy(stmt->error_code, "HY093"); /* invalid parameter number */ + ret = -1; + goto clean_up; + } + /* what are we going to do ? */ if (stmt->supports_placeholders == PDO_PLACEHOLDER_NONE) { diff --git a/ext/pdo/pdo_sql_parser.re b/ext/pdo/pdo_sql_parser.re index 09c81ffe92..6517270d06 100644 --- a/ext/pdo/pdo_sql_parser.re +++ b/ext/pdo/pdo_sql_parser.re @@ -138,6 +138,13 @@ PDO_API int pdo_parse_params(pdo_stmt_t *stmt, char *inquery, int inquery_len, params = stmt->bound_params; + /* Do we have placeholders but no bound params */ + if (bindno && !params) { + strcpy(stmt->error_code, "HY093"); /* invalid parameter number */ + ret = -1; + goto clean_up; + } + /* what are we going to do ? */ if (stmt->supports_placeholders == PDO_PLACEHOLDER_NONE) {