---- kact...@gnu.org wrote: > From: Dmitry Bogatov <kact...@gnu.org> > > Signed-off-by: Dmitry Bogatov <kact...@gnu.org> > --- > libguile/script.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/libguile/script.c b/libguile/script.c > index 052ab8d..7b737f7 100644 > --- a/libguile/script.c > +++ b/libguile/script.c > @@ -247,7 +247,10 @@ script_read_arg (FILE *f) > size = (size + 1) * 2; > buf = realloc (buf, size); > if (! buf) > - return 0; > + { > + free (buf); > + return 0; > + } > } > buf[len++] = c; > break; > @@ -330,7 +333,10 @@ scm_get_meta_args (int argc, char **argv) > while ((narg = script_read_arg (f))) > if (!(nargv = (char **) realloc (nargv, > (1 + ++nargc) * sizeof (char *)))) > + { > + free (nargv); > return 0L; > + } > else > nargv[nargi++] = narg; > fclose (f);
I don't understand this. In both cases, free() will be called with an argument of 0, which does nothing. -Dale