Re: BUG #4494: Memory leak in pg_regress.c - Mailing list pgsql-bugs

From Zdenek Kotala
Subject Re: BUG #4494: Memory leak in pg_regress.c
Date
Msg-id 490AEA18.2000200@sun.com
Whole thread Raw
In response to BUG #4494: Memory leak in pg_regress.c  ("" <dvice_null@yahoo.com>)
Responses Re: BUG #4494: Memory leak in pg_regress.c  (Alvaro Herrera <alvherre@commandprompt.com>)
List pgsql-bugs
dvice_null@yahoo.com napsal(a):
> The following bug has been logged online:
>
> Bug reference:      4494
> Logged by:
> Email address:      dvice_null@yahoo.com
> PostgreSQL version: Latest cvs
> Operating system:   Error in source code
> Description:        Memory leak in pg_regress.c
> Details:
>
> In file src/test/regress/pg_regress.c:1112
>
> It seems to me that variables "s" and "tmp" leak memory here if last_dot is
> false:
>
>
> static char *
> get_alternative_expectfile(const char *expectfile, int i)
> {
>         char       *last_dot;
>         int                     ssize = strlen(expectfile) + 2 + 1;
>         char       *tmp = (char *) malloc(ssize);
>         char       *s = (char *) malloc(ssize);
>
>         strcpy(tmp, expectfile);
>         last_dot = strrchr(tmp, '.');
>         if (!last_dot)
>                 return NULL;
>         *last_dot = '\0';
>         snprintf(s, ssize, "%s_%d.%s", tmp, i, last_dot + 1);
>         free(tmp);
>         return s;
> }
>

OK. It seems as a bug. tmp and s should be freed when strrchr fails. Also there
is not check when malloc fails.

        Zdenek






--
Zdenek Kotala              Sun Microsystems
Prague, Czech Republic     http://sun.com/postgresql

pgsql-bugs by date:

Previous
From: Zdenek Kotala
Date:
Subject: Re: BUG #4496: Memory leak in pg_dump.c?
Next
From: Francisco Olarte Sanz
Date:
Subject: Re: BUG #4496: Memory leak in pg_dump.c?