[BUG FIX] Uninitialized var fargtypes used.

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

[BUG FIX] Uninitialized var fargtypes used.

Ranier Vilela
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;

event_trigger.c.patch (530 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [BUG FIX] Uninitialized var fargtypes used.

Michael Paquier-2
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

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [BUG FIX] Uninitialized var fargtypes used.

Kyotaro Horiguchi-4
At Tue, 12 Nov 2019 12:31:41 +0900, Michael Paquier <[hidden email]> 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.c619: procOid = LookupFuncName(namelist, 0, fargtypes, false);
./backend/commands/trigger.c693: funcoid = LookupFuncName(stmt->funcname, 0, fargtypes, false);
./backend/commands/proclang.c108: handlerOid = LookupFuncName(funcname, 0, funcargtypes, true);
./backend/commands/proclang.c266: handlerOid = LookupFuncName(stmt->plhandler, 0, funcargtypes, false);
./backend/commands/event_trigger.c240: funcoid = LookupFuncName(stmt->funcname, 0, fargtypes, false);
./backend/commands/foreigncmds.c484: handlerOid = LookupFuncName((List *) handler->arg, 0, funcargtypes, false);

regards.

--
Kyotaro Horiguchi
NTT Open Source Software Center


Reply | Threaded
Open this post in threaded view
|

Re: [BUG FIX] Uninitialized var fargtypes used.

Michael Paquier-2
On Tue, Nov 12, 2019 at 03:27:35PM +0900, Kyotaro Horiguchi wrote:

> At Tue, 12 Nov 2019 12:31:41 +0900, Michael Paquier <[hidden email]> 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@...

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

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

RE: [BUG FIX] Uninitialized var fargtypes used.

Ranier Vilela
In reply to this post by Michael Paquier-2
Hi,
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 <[hidden email]>
Enviado: terça-feira, 12 de novembro de 2019 03:31
Para: Ranier Vilela <[hidden email]>
Cc: [hidden email] <[hidden email]>
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

event_trigger.c.patch (514 bytes) Download Attachment