Thread: [BUG FIX] Uninitialized var fargtypes used.
Hi, Can anyone check this bug fix? Thanks. Ranier Vilela --- \dll\postgresql-12.0\a\backend\commands\event_trigger.c Mon Sep 30 17:06:55 2019 +++ event_trigger.c Mon Nov 11 13:52:35 2019 @@ -171,7 +171,7 @@ HeapTuple tuple; Oid funcoid; Oid funcrettype; - Oid fargtypes[1]; /* dummy */ + Oid fargtypes[1] = {InvalidOid, InvalidOid}; /* dummy */ Oid evtowner = GetUserId(); ListCell *lc; List *tags = NULL;
Attachment
On Mon, Nov 11, 2019 at 06:28:47PM +0000, Ranier Vilela wrote: > Can anyone check this bug fix? > > +++ event_trigger.c Mon Nov 11 13:52:35 2019 > @@ -171,7 +171,7 @@ > HeapTuple tuple; > Oid funcoid; > Oid funcrettype; > - Oid fargtypes[1]; /* dummy */ > + Oid fargtypes[1] = {InvalidOid, InvalidOid}; /* dummy */ > Oid evtowner = GetUserId(); Yeah, it would be better to fix this initialization. -- Michael
Attachment
At Tue, 12 Nov 2019 12:31:41 +0900, Michael Paquier <michael@paquier.xyz> wrote in > On Mon, Nov 11, 2019 at 06:28:47PM +0000, Ranier Vilela wrote: > > Can anyone check this bug fix? > > > > +++ event_trigger.c Mon Nov 11 13:52:35 2019 > > @@ -171,7 +171,7 @@ > > HeapTuple tuple; > > Oid funcoid; > > Oid funcrettype; > > - Oid fargtypes[1]; /* dummy */ > > + Oid fargtypes[1] = {InvalidOid, InvalidOid}; /* dummy */ > > Oid evtowner = GetUserId(); > > Yeah, it would be better to fix this initialization. Agreed, but compiler should complain since the initializer is too long. And I found at least five other instances of the same. Or there might be similar cases. find . -type f -exec egrep --color -nH --null -e 'LookupFuncName ?\(.*, ?0,' \{\} + ./pl/tcl/pltcl.c�619: procOid = LookupFuncName(namelist, 0, fargtypes, false); ./backend/commands/trigger.c�693: funcoid = LookupFuncName(stmt->funcname, 0, fargtypes, false); ./backend/commands/proclang.c�108: handlerOid = LookupFuncName(funcname, 0, funcargtypes, true); ./backend/commands/proclang.c�266: handlerOid = LookupFuncName(stmt->plhandler, 0, funcargtypes, false); ./backend/commands/event_trigger.c�240: funcoid = LookupFuncName(stmt->funcname, 0, fargtypes, false); ./backend/commands/foreigncmds.c�484: handlerOid = LookupFuncName((List *) handler->arg, 0, funcargtypes, false); regards. -- Kyotaro Horiguchi NTT Open Source Software Center
On Tue, Nov 12, 2019 at 03:27:35PM +0900, Kyotaro Horiguchi wrote: > At Tue, 12 Nov 2019 12:31:41 +0900, Michael Paquier <michael@paquier.xyz> wrote in > > On Mon, Nov 11, 2019 at 06:28:47PM +0000, Ranier Vilela wrote: > > > Can anyone check this bug fix? > > > > > > +++ event_trigger.c Mon Nov 11 13:52:35 2019 > > > @@ -171,7 +171,7 @@ > > > HeapTuple tuple; > > > Oid funcoid; > > > Oid funcrettype; > > > - Oid fargtypes[1]; /* dummy */ > > > + Oid fargtypes[1] = {InvalidOid, InvalidOid}; /* dummy */ > > > Oid evtowner = GetUserId(); > > > > Yeah, it would be better to fix this initialization. > > Agreed, but compiler should complain since the initializer is too > long. And I found at least five other instances of the same. Or there > might be similar cases. Would you like to write a patch with everything you found? I have commented on a rather similar topic about the style of the initialization close to here: https://www.postgresql.org/message-id/3378.1571684676@sss.pgh.pa.us However, if it comes to InvalidOid and if we are talking about only one element, I think that we should just assign the value without memset. -- Michael
Attachment
Hi,
Sorry by error in the patch.
--- \dll\postgresql-12.0\a\backend\commands\event_trigger.c Mon Sep 30 17:06:55 2019
Sorry by error in the patch.
--- \dll\postgresql-12.0\a\backend\commands\event_trigger.c Mon Sep 30 17:06:55 2019
+++ event_trigger.c Tue Nov 12 08:34:30 2019
@@ -171,7 +171,7 @@
HeapTuple tuple;
Oid funcoid;
Oid funcrettype;
- Oid fargtypes[1]; /* dummy */
+ Oid fargtypes[1] = {InvalidOid}; /* dummy */
Oid evtowner = GetUserId();
ListCell *lc;
List *tags = NULL;
De: Michael Paquier <michael@paquier.xyz>
Enviado: terça-feira, 12 de novembro de 2019 03:31
Para: Ranier Vilela <ranier_gyn@hotmail.com>
Cc: pgsql-hackers@lists.postgresql.org <pgsql-hackers@lists.postgresql.org>
Assunto: Re: [BUG FIX] Uninitialized var fargtypes used.
Enviado: terça-feira, 12 de novembro de 2019 03:31
Para: Ranier Vilela <ranier_gyn@hotmail.com>
Cc: pgsql-hackers@lists.postgresql.org <pgsql-hackers@lists.postgresql.org>
Assunto: Re: [BUG FIX] Uninitialized var fargtypes used.
On Mon, Nov 11, 2019 at 06:28:47PM +0000, Ranier Vilela wrote:
> Can anyone check this bug fix?
>
> +++ event_trigger.c Mon Nov 11 13:52:35 2019
> @@ -171,7 +171,7 @@
> HeapTuple tuple;
> Oid funcoid;
> Oid funcrettype;
> - Oid fargtypes[1]; /* dummy */
> + Oid fargtypes[1] = {InvalidOid, InvalidOid}; /* dummy */
> Oid evtowner = GetUserId();
Yeah, it would be better to fix this initialization.
--
Michael
> Can anyone check this bug fix?
>
> +++ event_trigger.c Mon Nov 11 13:52:35 2019
> @@ -171,7 +171,7 @@
> HeapTuple tuple;
> Oid funcoid;
> Oid funcrettype;
> - Oid fargtypes[1]; /* dummy */
> + Oid fargtypes[1] = {InvalidOid, InvalidOid}; /* dummy */
> Oid evtowner = GetUserId();
Yeah, it would be better to fix this initialization.
--
Michael