From bba019781a0df3744ccbfe9e580786b66dc9afa9 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Thu, 26 Nov 2009 16:06:03 +0000 Subject: Fix error handling in 'zero' function. --- daemon/zero.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'daemon') diff --git a/daemon/zero.c b/daemon/zero.c index 0ade2423..4d065052 100644 --- a/daemon/zero.c +++ b/daemon/zero.c @@ -41,20 +41,17 @@ do_zero (const char *device) memset (buf, 0, sizeof buf); - int err = 0; - int saved_errno = 0; for (i = 0; i < 32; ++i) if (write (fd, buf, sizeof buf) != sizeof buf) { - saved_errno = errno; - err = -1; + reply_with_perror ("write: %s", device); + close (fd); + return -1; } - if (close (fd) && saved_errno == 0) { - saved_errno = errno; - err = -1; + if (close (fd) == -1) { + reply_with_perror ("close: %s", device); + return -1; } - if (saved_errno) - errno = saved_errno; - return err; + return 0; } -- cgit