Patch written, attached, and applied.

---------------------------------------------------------------------------

dvice_n...@yahoo.com wrote:
> 
> The following bug has been logged online:
> 
> Bug reference:      4494
> Logged by:          
> Email address:      dvice_n...@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;
> }
> 
> -- 
> Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-bugs

-- 
  Bruce Momjian  <br...@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +
Index: src/test/regress/pg_regress.c
===================================================================
RCS file: /cvsroot/pgsql/src/test/regress/pg_regress.c,v
retrieving revision 1.56
diff -c -c -r1.56 pg_regress.c
*** src/test/regress/pg_regress.c	1 Jan 2009 17:24:04 -0000	1.56
--- src/test/regress/pg_regress.c	8 Jan 2009 20:03:29 -0000
***************
*** 1134,1140 ****
--- 1134,1144 ----
  	strcpy(tmp, expectfile);
  	last_dot = strrchr(tmp, '.');
  	if (!last_dot)
+ 	{
+ 		free(tmp);
+ 		free(s);
  		return NULL;
+ 	}
  	*last_dot = '\0';
  	snprintf(s, ssize, "%s_%d.%s", tmp, i, last_dot + 1);
  	free(tmp);
-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to