From 1dc3d266ef6f3d8b0091ebfbb982859ca35ead50 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 8 Jun 1999 20:25:31 +0000 Subject: [PATCH] Update. * grp/fgetgrent.c (buffer): Make file local variable. (free_mem): New function. Call for malloc debugging. --- ChangeLog | 3 +++ grp/fgetgrent.c | 14 +++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) 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);