From: Richard Kettlewell Date: Sat, 10 Nov 2007 11:40:28 +0000 (+0000) Subject: log bad closes X-Git-Tag: debian-1_5_99dev8~54 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/commitdiff_plain/8bb67afe38e216185a23b7cf2e7996c68b5d8e9e log bad closes --- diff --git a/lib/syscalls.c b/lib/syscalls.c index f05b644..66c3d47 100644 --- a/lib/syscalls.c +++ b/lib/syscalls.c @@ -47,8 +47,9 @@ pid_t xfork(void) { return pid; } -void xclose(int fd) { - mustnotbeminus1("close", close(fd)); +void xclose_guts(const char *path, int line, int fd) { + if(close(fd) < 0) + fatal(errno, "%s:%d: close %d", path, line, fd); } void xdup2(int fd1, int fd2) { diff --git a/lib/syscalls.h b/lib/syscalls.h index 296084d..4f3d780 100644 --- a/lib/syscalls.h +++ b/lib/syscalls.h @@ -34,7 +34,8 @@ struct timezone; #include "types.h" pid_t xfork(void); -void xclose(int); +void xclose_guts(const char *, int, int); +#define xclose(fd) xclose_guts(__FILE__, __LINE__, fd) void xdup2(int, int); void xpipe(int *); int xfcntl(int, int, long);