From: Tom Lane Date: Thu, 28 Jan 2021 22:18:23 +0000 (-0500) Subject: Silence another gcc 11 warning. X-Git-Tag: REL_14_BETA1~854 X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=1046dbedde2fc3fe55f007ff3255ab65ab98f858;p=postgresql.git Silence another gcc 11 warning. Per buildfarm and local experimentation, bleeding-edge gcc isn't convinced that the MemSet in reorder_function_arguments() is safe. Shut it up by adding an explicit check that pronargs isn't negative, and by changing MemSet to memset. (It appears that either change is enough to quiet the warning at -O2, but let's do both to be sure.) --- diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c index d2470b7c6a7..f3786dd2b63 100644 --- a/src/backend/optimizer/util/clauses.c +++ b/src/backend/optimizer/util/clauses.c @@ -3805,9 +3805,9 @@ reorder_function_arguments(List *args, HeapTuple func_tuple) int i; Assert(nargsprovided <= pronargs); - if (pronargs > FUNC_MAX_ARGS) + if (pronargs < 0 || pronargs > FUNC_MAX_ARGS) elog(ERROR, "too many function arguments"); - MemSet(argarray, 0, pronargs * sizeof(Node *)); + memset(argarray, 0, pronargs * sizeof(Node *)); /* Deconstruct the argument list into an array indexed by argnumber */ i = 0;