From 1abd239b9ded3386fac8d553aa4652da88a52d58 Mon Sep 17 00:00:00 2001
From: Matt Johnston <matt@ucc.asn.au>
Date: Sun, 21 May 2017 10:48:18 +0800
Subject: [PATCH] ignore wrapfd_close for unknown

--HG--
branch : fuzz
---
 fuzz-wrapfd.c | 12 +++++++++---
 fuzz-wrapfd.h |  1 +
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/fuzz-wrapfd.c b/fuzz-wrapfd.c
index 215eb166..c65ed38d 100644
--- a/fuzz-wrapfd.c
+++ b/fuzz-wrapfd.c
@@ -44,7 +44,6 @@ void wrapfd_add(int fd, buffer *buf, enum wrapfd_mode mode) {
 	assert(wrap_fds[fd].mode == UNUSED);
 	assert(buf || mode == RANDOMIN);
 
-
 	wrap_fds[fd].mode = mode;
 	wrap_fds[fd].buf = buf;
 	wrap_fds[fd].closein = 0;
@@ -73,8 +72,15 @@ void wrapfd_remove(int fd) {
 	nused--;
 }
 
-void wrapfd_close(int fd) {
-	wrapfd_remove(fd);
+int wrapfd_close(int fd) {
+	if (fd >= 0 && fd <= IOWRAP_MAXFD && wrap_fds[fd].mode != UNUSED) 
+	{
+		wrapfd_remove(fd);
+		return 0;
+	}
+	else {
+		return close(fd);
+	}
 }
 
 int wrapfd_read(int fd, void *out, size_t count) {
diff --git a/fuzz-wrapfd.h b/fuzz-wrapfd.h
index a73a7fe2..9358c1a4 100644
--- a/fuzz-wrapfd.h
+++ b/fuzz-wrapfd.h
@@ -19,5 +19,6 @@ int wrapfd_read(int fd, void *out, size_t count);
 int wrapfd_write(int fd, const void* in, size_t count);
 int wrapfd_select(int nfds, fd_set *readfds, fd_set *writefds, 
     fd_set *exceptfds, struct timeval *timeout);
+int wrapfd_close(int fd);
 
 #endif // FUZZ_WRAPFD_H
-- 
GitLab