Fix creation of zero-sized disk storage objects.
authorAndre Noll <maan@systemlinux.org>
Fri, 15 Jan 2010 19:11:50 +0000 (20:11 +0100)
committerAndre Noll <maan@systemlinux.org>
Fri, 15 Jan 2010 19:11:50 +0000 (20:11 +0100)
We must not call write_all() with a zero length parameter.

util.c

diff --git a/util.c b/util.c
index 49f1914..572b7a5 100644 (file)
--- a/util.c
+++ b/util.c
@@ -110,9 +110,11 @@ int write_file(const char *filename, const void *buf, size_t size)
        if (ret < 0)
                return ret;
        fd = ret;
-       ret = write_all(fd, buf, &size);
-       if (ret < 0)
-               goto out;
+       if (size != 0) {
+               ret = write_all(fd, buf, &size);
+               if (ret < 0)
+                       goto out;
+       }
        ret = 1;
 out:
        close(fd);