Re: Possible bug in plpgsql/src/gram.y - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: Possible bug in plpgsql/src/gram.y
Date
Msg-id 200107120118.f6C1IiM11618@candle.pha.pa.us
Whole thread Raw
In response to Possible bug in plpgsql/src/gram.y  (Ian Lance Taylor <ian@airs.com>)
Responses Re: Possible bug in plpgsql/src/gram.y
List pgsql-hackers
Confirmed.  I found a second problem in the file too, very similar.
Patch applied.

> In this bit of code in src/pl/plpgsql/src/gram.y in the current CVS
> sources, curname_def is defined as PLpgSQL_expr * but it is is
> allocated the space required for a PLpgSQL_var.  This looks like a
> bug.
>
> Ian
>
>                 | decl_varname K_CURSOR decl_cursor_args decl_is_from K_SELECT decl_cursor_query
>                     {
>                         PLpgSQL_var *new;
>                         PLpgSQL_expr *curname_def;
>                         char        buf[1024];
>                         char        *cp1;
>                         char        *cp2;
>
>                         plpgsql_ns_pop();
>
>                         new = malloc(sizeof(PLpgSQL_var));
>                         memset(new, 0, sizeof(PLpgSQL_var));
>
>                         curname_def = malloc(sizeof(PLpgSQL_var));
>                         memset(curname_def, 0, sizeof(PLpgSQL_var));
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
>

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
Index: src/pl/plpgsql/src/gram.y
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/src/pl/plpgsql/src/gram.y,v
retrieving revision 1.22
diff -c -r1.22 gram.y
*** src/pl/plpgsql/src/gram.y    2001/07/11 18:54:18    1.22
--- src/pl/plpgsql/src/gram.y    2001/07/12 01:15:05
***************
*** 332,338 ****
                      {
                          PLpgSQL_rec        *new;

!                         new = malloc(sizeof(PLpgSQL_var));

                          new->dtype        = PLPGSQL_DTYPE_REC;
                          new->refname    = $1.name;
--- 332,338 ----
                      {
                          PLpgSQL_rec        *new;

!                         new = malloc(sizeof(PLpgSQL_rec));

                          new->dtype        = PLPGSQL_DTYPE_REC;
                          new->refname    = $1.name;
***************
*** 374,381 ****
                          new = malloc(sizeof(PLpgSQL_var));
                          memset(new, 0, sizeof(PLpgSQL_var));

!                         curname_def = malloc(sizeof(PLpgSQL_var));
!                         memset(curname_def, 0, sizeof(PLpgSQL_var));

                          new->dtype        = PLPGSQL_DTYPE_VAR;
                          new->refname    = $1.name;
--- 374,381 ----
                          new = malloc(sizeof(PLpgSQL_var));
                          memset(new, 0, sizeof(PLpgSQL_var));

!                         curname_def = malloc(sizeof(PLpgSQL_expr));
!                         memset(curname_def, 0, sizeof(PLpgSQL_expr));

                          new->dtype        = PLPGSQL_DTYPE_VAR;
                          new->refname    = $1.name;

pgsql-hackers by date:

Previous
From: Ian Lance Taylor
Date:
Subject: Possible bug in plpgsql/src/gram.y
Next
From: Bruce Momjian
Date:
Subject: Re: Possible bug in plpgsql/src/gram.y