From 1abd239b9ded3386fac8d553aa4652da88a52d58 Mon Sep 17 00:00:00 2001 From: Matt Johnston 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 215eb16..c65ed38 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 a73a7fe..9358c1a 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