From: Richard Jones Date: Thu, 26 Nov 2009 16:06:03 +0000 (+0000) Subject: Fix error handling in 'zero' function. X-Git-Tag: 1.0.80~18 X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=commitdiff_plain;h=bba019781a0df3744ccbfe9e580786b66dc9afa9 Fix error handling in 'zero' function. --- diff --git a/daemon/zero.c b/daemon/zero.c index 0ade242..4d06505 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; }