Browse code

Fix fd leak in Word6 macro code.

git-svn-id: file:///var/lib/svn/clamav-devel/trunk/clamav-devel@542 77e5149b-7576-45b1-b177-96237e5ba77b

Trog authored on 2004/05/07 00:21:33
Showing 2 changed files
... ...
@@ -1,3 +1,7 @@
1
+Thu May  6 16:22:32 BST 2004 (trog)
2
+-----------------------------------
3
+  * libclamav/vba_extract.c: Fix fd leak in Word6 macro code.
4
+
1 5
 Thu May  6 12:27:03 BST 2004 (njh)
2 6
 ----------------------------------
3 7
   * libclamav/mbox.c:	Ensure all attachements marked as RFC822 emails will
... ...
@@ -1205,12 +1205,14 @@ vba_project_t *wm_dir_read(const char *dir)
1205 1205
 	}
1206 1206
 	
1207 1207
 	if (!wm_read_fib(fd, &fib)) {
1208
+		close(fd);
1208 1209
 		return NULL;
1209 1210
 	}
1210 1211
 	wm_print_fib(&fib);
1211 1212
 	
1212 1213
 	if (lseek(fd, fib.macro_offset, SEEK_SET) != fib.macro_offset) {
1213 1214
 		cli_dbgmsg("lseek macro_offset failed\n");
1215
+		close(fd);
1214 1216
 		return NULL;
1215 1217
 	}
1216 1218
 	
... ...
@@ -1218,6 +1220,7 @@ vba_project_t *wm_dir_read(const char *dir)
1218 1218
 	
1219 1219
 	if (cli_readn(fd, &start_id, 1) != 1) {
1220 1220
 		cli_dbgmsg("read start_id failed\n");
1221
+		close(fd);
1221 1222
 		return NULL;
1222 1223
 	}
1223 1224
 	cli_dbgmsg("start_id: %d\n", start_id);
... ...
@@ -1225,6 +1228,7 @@ vba_project_t *wm_dir_read(const char *dir)
1225 1225
 	while ((lseek(fd, 0, SEEK_CUR) < end_offset) && !done) {
1226 1226
 		if (cli_readn(fd, &info_id, 1) != 1) {
1227 1227
 			cli_dbgmsg("read macro_info failed\n");
1228
+			close(fd);
1228 1229
 			return NULL;
1229 1230
 		}
1230 1231
 		switch (info_id) {
... ...
@@ -1337,6 +1341,7 @@ abort:
1337 1337
 	if (macro_intnames) {
1338 1338
 		wm_free_intnames(macro_intnames);
1339 1339
 	}
1340
+	close(fd);
1340 1341
 	return vba_project;
1341 1342
 }
1342 1343