Mercurial > hg > octave-lyh > gnulib-hg
changeset 5026:89b909b9feb3
(read_utmp) [UTMP_NAME_FUNCTION]: Upon realloc failure,
don't leak memory and do call END_UTMP_ENT.
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Mon, 19 Apr 2004 20:12:23 +0000 |
parents | fb8fedbb2357 |
children | 0283c5c6bf74 |
files | lib/readutmp.c |
diffstat | 1 files changed, 10 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/readutmp.c +++ b/lib/readutmp.c @@ -1,5 +1,5 @@ /* GNU's read utmp module. - Copyright (C) 1992-2001, 2003 Free Software Foundation, Inc. + Copyright (C) 1992-2001, 2003, 2004 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -74,10 +74,16 @@ n_read = 0; while ((u = GET_UTMP_ENT ()) != NULL) { + STRUCT_UTMP *p; ++n_read; - utmp = (STRUCT_UTMP *) realloc (utmp, n_read * sizeof (STRUCT_UTMP)); - if (utmp == NULL) - return 1; + p = (STRUCT_UTMP *) realloc (utmp, n_read * sizeof (STRUCT_UTMP)); + if (p == NULL) + { + free (utmp); + END_UTMP_ENT (); + return 1; + } + utmp = p; utmp[n_read - 1] = *u; }