From 97505d53504d42a41b4dd61ba99cb784e665d6c4 Mon Sep 17 00:00:00 2001 From: 7 Date: Sun, 7 May 2000 05:04:31 +0000 Subject: Also close the fd after we're done. 2000-05-07 * file.c (ibex_open): Also close the fd after we're done. svn path=/trunk/; revision=2859 --- libibex/file.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'libibex/file.c') diff --git a/libibex/file.c b/libibex/file.c index 5c292e198f..462fbec3d4 100644 --- a/libibex/file.c +++ b/libibex/file.c @@ -114,6 +114,7 @@ ibex_open (char *file, int flags, int mode) if (f == NULL) { if (errno == 0) errno = ENOMEM; + close(fd); return NULL; } @@ -124,12 +125,16 @@ ibex_open (char *file, int flags, int mode) ib->words = g_hash_table_new (g_str_hash, g_str_equal); ib->oldfiles = g_ptr_array_new (); - if (!f) + if (!f) { + close(fd); return ib; + } /* Check version. If its empty, then we have just created it */ if (fread (vbuf, 1, sizeof (vbuf), f) != sizeof (vbuf)) { if (feof (f)) { + fclose(f); + close(fd); return ib; } } @@ -177,11 +182,13 @@ ibex_open (char *file, int flags, int mode) g_free (ibfs); fclose (f); + close(fd); return ib; errout: fclose (f); + close(fd); g_tree_traverse (ib->files, free_file, G_IN_ORDER, NULL); g_tree_destroy (ib->files); g_hash_table_foreach (ib->words, free_word, NULL); -- cgit v1.2.3