]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Silence another gcc 11 warning.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 13 Dec 2021 05:08:33 +0000 (00:08 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 13 Dec 2021 05:08:33 +0000 (00:08 -0500)
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.)

This back-patches commit 1046dbedd into out-of-support branches,
pursuant to newly-established project policy.  The point is to
suppress scary-looking warnings so that people building these
branches needn't expend brain cells verifying that it's safe
to ignore the warnings.

Discussion: https://postgr.es/m/d0316012-ece7-7b7e-2d36-9c38cb77cb3b@enterprisedb.com

src/backend/optimizer/util/clauses.c

index a7e1ba073ad83c253c0fda408f0a7640a08b5d0a..45cc4e3a5c3d1960e436adc901f44f2d5145f2c3 100644 (file)
@@ -3873,9 +3873,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;