Re: Possible bug in plpgsql/src/gram.y

Поиск
Список
Период
Сортировка
От Jan Wieck
Тема Re: Possible bug in plpgsql/src/gram.y
Дата
Msg-id 200107121204.f6CC4ms21764@jupiter.us.greatbridge.com
обсуждение исходный текст
Ответ на Re: Possible bug in plpgsql/src/gram.y  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список pgsql-hackers
Bruce Momjian wrote:
>
> Confirmed.  I found a second problem in the file too, very similar.
> Patch applied.
   Cut'n paste error. Thanks to both of you, good catch.


Jan

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

>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster


--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #



_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com



В списке pgsql-hackers по дате отправления:

Предыдущее
От: "V. M."
Дата:
Сообщение: Child itemid in update-chain marked as unused - can't continue repair_frag
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: Child itemid in update-chain marked as unused - can't continue repair_frag