Re: [BUG FIX] Uninitialized var fargtypes used.
Alvaro Herrera <alvherre@2ndquadrant.com>
From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Kyotaro Horiguchi <horikyota.ntt@gmail.com>, ranier_gyn@hotmail.com, pgsql-bugs@lists.postgresql.org
Date: 2019-11-12T20:10:46Z
Lists: pgsql-bugs
On 2019-Nov-12, Tom Lane wrote: > If we're going to revert 0a52d378b03b we should just treat the > problem straightforwardly. I was imagining > > - if (memcmp(argtypes, clist->args, nargs * sizeof(Oid)) == 0) > + /* if nargs==0, argtypes can be null; don't pass that to memcmp */ > + if (nargs == 0 || > + memcmp(argtypes, clist->args, nargs * sizeof(Oid)) == 0) > > It's really stretching credulity to imagine that one more test-and-branch > in this loop costs anything worth noticing, especially compared to the > costs of having built the list to begin with. So I'm now feeling that > 0a52d378b03b was penny-wise and pound-foolish. I pushed using that approach. For a minute I thought that it should also test that clist->nargs also equals 0, but that turns out not to be necessary since the number of arguments is already considered by FuncnameGetCandidates above. Thanks -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Finish reverting commit 0a52d378b.
- 112caf9039f4 13.0 landed
-
Have LookupFuncName accept NULL argtypes for 0 args
- dcb7d3cafa31 13.0 landed
-
Avoid passing NULL to memcmp() in lookups of zero-argument functions.
- 0a52d378b03b 9.5.0 cited