diff --git a/ChangeLog b/ChangeLog index 65dca7901c..8ae24b9bf8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 1999-06-08 Ulrich Drepper + * grp/fgetgrent.c (buffer): Make file local variable. + (free_mem): New function. Call for malloc debugging. + * grp/tst_fgetgrent.c (write_users): Correctly generate long line. 1999-06-08 Andreas Jaeger diff --git a/grp/fgetgrent.c b/grp/fgetgrent.c index ac8d093f05..d2e3de69a7 100644 --- a/grp/fgetgrent.c +++ b/grp/fgetgrent.c @@ -26,11 +26,12 @@ /* We need to protect the dynamic buffer handling. */ __libc_lock_define_initialized (static, lock); +static char *buffer; + /* Read one entry from the given stream. */ struct group * fgetgrent (FILE *stream) { - static char *buffer; static size_t buffer_size; static struct group resbuf; fpos_t pos; @@ -85,3 +86,14 @@ fgetgrent (FILE *stream) return result; } + + +/* Free all resources if necessary. */ +static void __attribute__ ((unused)) +free_mem (void) +{ + if (buffer != NULL) + free (buffer); +} + +text_set_element (__libc_subfreeres, free_mem);