AddressSanitizer: stack-use-after-scope on distributed_planner.c

pull/7963/head
Maksim Melnikov 2025-04-18 16:11:15 +03:00
parent 4c7004df42
commit f94bd01d46
1 changed files with 4 additions and 5 deletions

View File

@ -2548,21 +2548,20 @@ HasUnresolvedExternParamsWalker(Node *expression, ParamListInfo boundParams)
/* check whether parameter is available (and valid) */ /* check whether parameter is available (and valid) */
if (boundParams && paramId > 0 && paramId <= boundParams->numParams) if (boundParams && paramId > 0 && paramId <= boundParams->numParams)
{ {
ParamExternData *externParam = NULL; Oid paramType = InvalidOid;
/* give hook a chance in case parameter is dynamic */ /* give hook a chance in case parameter is dynamic */
if (boundParams->paramFetch != NULL) if (boundParams->paramFetch != NULL)
{ {
ParamExternData externParamPlaceholder; ParamExternData externParamPlaceholder;
externParam = (*boundParams->paramFetch)(boundParams, paramId, false, paramType = (*boundParams->paramFetch)(boundParams, paramId, false,
&externParamPlaceholder); &externParamPlaceholder)->ptype;
} }
else else
{ {
externParam = &boundParams->params[paramId - 1]; paramType = boundParams->params[paramId - 1].ptype;
} }
Oid paramType = externParam->ptype;
if (OidIsValid(paramType)) if (OidIsValid(paramType))
{ {
return false; return false;