1214. [bug] getrgnam()/getgrgid() leaked memory.
*/
#if !defined(LINT) && !defined(CODECENTER)
-static const char rcsid[] = "$Id: gen_gr.c,v 1.1 2001/03/29 06:31:43 marka Exp $";
+static const char rcsid[] = "$Id: gen_gr.c,v 1.2 2001/05/25 03:32:40 marka Exp $";
#endif
/* Imports */
/* No work to do. */
return;
}
- cp = realloc(pvt->membuf, pvt->membufsize + n);
+ cp = realloc(pvt->membuf, (preserve ? pvt->membufsize : 0) + n);
if (!cp) {
/* No harm done, no work done. */
return;
}
memadj = cp - pvt->membuf;
pvt->membuf = cp;
- cp += pvt->membufsize;
- pvt->membufsize += n;
+ if (preserve) {
+ cp += pvt->membufsize;
+ pvt->membufsize += n;
+ } else
+ pvt->membufsize = n;
/*
* Add new elements.
*/
#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: irp_gr.c,v 1.1 2001/03/29 06:31:48 marka Exp $";
+static const char rcsid[] = "$Id: irp_gr.c,v 1.2 2001/05/25 03:32:38 marka Exp $";
#endif /* LIBC_SCCS and not lint */
/* extern */
for (p = gr->gr_mem ; p != NULL && *p != NULL ; p++)
free(*p);
+ if (gr->gr_mem)
+ free(gr->gr_mem);
+
if (p != NULL)
free(p);
}