Fix the dangling pointer bug in get_merged_argument_list()

pull/6518/head
Teja Mupparti 2022-11-21 16:58:06 -08:00 committed by Teja Mupparti
parent 80faf47ab5
commit edaf88e0ff
2 changed files with 5 additions and 2 deletions

View File

@ -482,7 +482,7 @@ get_merged_argument_list(CallStmt *stmt, List **mergedNamedArgList,
Oid functionOid = stmt->funcexpr->funcid;
List *namedArgList = NIL;
List *finalArgumentList = NIL;
Oid finalArgTypes[FUNC_MAX_ARGS];
Oid *finalArgTypes;
Oid *argTypes = NULL;
char *argModes = NULL;
char **argNames = NULL;
@ -519,6 +519,7 @@ get_merged_argument_list(CallStmt *stmt, List **mergedNamedArgList,
/* Remove the duplicate INOUT counting */
numberOfArgs = numberOfArgs - totalInoutArgs;
finalArgTypes = palloc0(sizeof(Oid) * numberOfArgs);
ListCell *inArgCell = list_head(stmt->funcexpr->args);
ListCell *outArgCell = list_head(stmt->outargs);

View File

@ -491,7 +491,7 @@ get_merged_argument_list(CallStmt *stmt, List **mergedNamedArgList,
Oid functionOid = stmt->funcexpr->funcid;
List *namedArgList = NIL;
List *finalArgumentList = NIL;
Oid finalArgTypes[FUNC_MAX_ARGS];
Oid *finalArgTypes;
Oid *argTypes = NULL;
char *argModes = NULL;
char **argNames = NULL;
@ -528,6 +528,7 @@ get_merged_argument_list(CallStmt *stmt, List **mergedNamedArgList,
/* Remove the duplicate INOUT counting */
numberOfArgs = numberOfArgs - totalInoutArgs;
finalArgTypes = palloc0(sizeof(Oid) * numberOfArgs);
ListCell *inArgCell = list_head(stmt->funcexpr->args);
ListCell *outArgCell = list_head(stmt->outargs);
@ -610,6 +611,7 @@ get_merged_argument_list(CallStmt *stmt, List **mergedNamedArgList,
return true;
}
/*
* pg_get_rule_expr deparses an expression and returns the result as a string.
*/