Skip to content

Commit 30cea30

Browse files
committed
ext/pgsql fixing further calls with flexible arguments number.
continuation of phpGH-17161
1 parent a57a434 commit 30cea30

File tree

1 file changed

+32
-8
lines changed

1 file changed

+32
-8
lines changed

ext/pgsql/pgsql.c

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -984,12 +984,15 @@ PHP_FUNCTION(pg_query)
984984
}
985985
link = FETCH_DEFAULT_LINK();
986986
CHECK_DEFAULT_LINK(link);
987-
} else {
987+
} else if (ZEND_NUM_ARGS() == 2) {
988988
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Os", &pgsql_link, pgsql_link_ce, &query, &query_len) == FAILURE) {
989989
RETURN_THROWS();
990990
}
991991
link = Z_PGSQL_LINK_P(pgsql_link);
992992
CHECK_PGSQL_LINK(link);
993+
} else {
994+
zend_wrong_parameters_count_error(1, 2);
995+
RETURN_THROWS();
993996
}
994997

995998
pgsql = link->conn;
@@ -1078,12 +1081,15 @@ PHP_FUNCTION(pg_query_params)
10781081
}
10791082
link = FETCH_DEFAULT_LINK();
10801083
CHECK_DEFAULT_LINK(link);
1081-
} else {
1084+
} else if (ZEND_NUM_ARGS() == 3) {
10821085
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Osa", &pgsql_link, pgsql_link_ce, &query, &query_len, &pv_param_arr) == FAILURE) {
10831086
RETURN_THROWS();
10841087
}
10851088
link = Z_PGSQL_LINK_P(pgsql_link);
10861089
CHECK_PGSQL_LINK(link);
1090+
} else {
1091+
zend_wrong_parameters_count_error(2, 3);
1092+
RETURN_THROWS();
10871093
}
10881094

10891095
pgsql = link->conn;
@@ -1183,12 +1189,15 @@ PHP_FUNCTION(pg_prepare)
11831189
}
11841190
link = FETCH_DEFAULT_LINK();
11851191
CHECK_DEFAULT_LINK(link);
1186-
} else {
1192+
} else if (ZEND_NUM_ARGS() == 3) {
11871193
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Oss", &pgsql_link, pgsql_link_ce, &stmtname, &stmtname_len, &query, &query_len) == FAILURE) {
11881194
RETURN_THROWS();
11891195
}
11901196
link = Z_PGSQL_LINK_P(pgsql_link);
11911197
CHECK_PGSQL_LINK(link);
1198+
} else {
1199+
zend_wrong_parameters_count_error(2, 3);
1200+
RETURN_THROWS();
11921201
}
11931202

11941203
pgsql = link->conn;
@@ -1264,12 +1273,15 @@ PHP_FUNCTION(pg_execute)
12641273
}
12651274
link = FETCH_DEFAULT_LINK();
12661275
CHECK_DEFAULT_LINK(link);
1267-
} else {
1276+
} else if (ZEND_NUM_ARGS() == 3) {
12681277
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Osa", &pgsql_link, pgsql_link_ce, &stmtname, &stmtname_len, &pv_param_arr) == FAILURE) {
12691278
RETURN_THROWS();
12701279
}
12711280
link = Z_PGSQL_LINK_P(pgsql_link);
12721281
CHECK_PGSQL_LINK(link);
1282+
} else {
1283+
zend_wrong_parameters_count_error(2, 3);
1284+
RETURN_THROWS();
12731285
}
12741286

12751287
pgsql = link->conn;
@@ -2024,7 +2036,7 @@ static void php_pgsql_data_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type, bo
20242036
Z_PARAM_OBJECT_OF_CLASS(result, pgsql_result_ce)
20252037
Z_PARAM_STR_OR_LONG(field_name, field_offset)
20262038
ZEND_PARSE_PARAMETERS_END();
2027-
} else {
2039+
} else if (ZEND_NUM_ARGS() == 3) {
20282040
ZEND_PARSE_PARAMETERS_START(3, 3)
20292041
Z_PARAM_OBJECT_OF_CLASS(result, pgsql_result_ce)
20302042
if (nullable_row) {
@@ -2034,6 +2046,9 @@ static void php_pgsql_data_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type, bo
20342046
}
20352047
Z_PARAM_STR_OR_LONG(field_name, field_offset)
20362048
ZEND_PARSE_PARAMETERS_END();
2049+
} else {
2050+
zend_wrong_parameters_count_error(2, 3);
2051+
RETURN_THROWS();
20372052
}
20382053

20392054
pg_result = Z_PGSQL_RESULT_P(result);
@@ -2849,12 +2864,15 @@ PHP_FUNCTION(pg_set_error_verbosity)
28492864
}
28502865
link = FETCH_DEFAULT_LINK();
28512866
CHECK_DEFAULT_LINK(link);
2852-
} else {
2867+
} else if (ZEND_NUM_ARGS() == 2) {
28532868
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Ol", &pgsql_link, pgsql_link_ce, &verbosity) == FAILURE) {
28542869
RETURN_THROWS();
28552870
}
28562871
link = Z_PGSQL_LINK_P(pgsql_link);
28572872
CHECK_PGSQL_LINK(link);
2873+
} else {
2874+
zend_wrong_parameters_count_error(1, 2);
2875+
RETURN_THROWS();
28582876
}
28592877

28602878
pgsql = link->conn;
@@ -2907,12 +2925,15 @@ PHP_FUNCTION(pg_set_client_encoding)
29072925
}
29082926
link = FETCH_DEFAULT_LINK();
29092927
CHECK_DEFAULT_LINK(link);
2910-
} else {
2928+
} else if (ZEND_NUM_ARGS() == 2) {
29112929
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Os", &pgsql_link, pgsql_link_ce, &encoding, &encoding_len) == FAILURE) {
29122930
RETURN_THROWS();
29132931
}
29142932
link = Z_PGSQL_LINK_P(pgsql_link);
29152933
CHECK_PGSQL_LINK(link);
2934+
} else {
2935+
zend_wrong_parameters_count_error(1, 2);
2936+
RETURN_THROWS();
29162937
}
29172938

29182939
pgsql = link->conn;
@@ -2996,12 +3017,15 @@ PHP_FUNCTION(pg_put_line)
29963017
}
29973018
link = FETCH_DEFAULT_LINK();
29983019
CHECK_DEFAULT_LINK(link);
2999-
} else {
3020+
} else if (ZEND_NUM_ARGS() == 2) {
30003021
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Os", &pgsql_link, pgsql_link_ce, &query, &query_len) == FAILURE) {
30013022
RETURN_THROWS();
30023023
}
30033024
link = Z_PGSQL_LINK_P(pgsql_link);
30043025
CHECK_PGSQL_LINK(link);
3026+
} else {
3027+
zend_wrong_parameters_count_error(1, 2);
3028+
RETURN_THROWS();
30053029
}
30063030

30073031
pgsql = link->conn;

0 commit comments

Comments
 (0)