osl-0.2.0.
[osl.git] / util.c
diff --git a/util.c b/util.c
index db80854..34667e3 100644 (file)
--- a/util.c
+++ b/util.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2008 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2009 Andre Noll <maan@tuebingen.mpg.de>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -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);
@@ -227,7 +229,7 @@ __must_check __printf_1_2 __malloc char *make_message(const char *fmt, ...)
                n = vsnprintf(p, size, fmt, ap);
                va_end(ap);
                /* If that worked, return the string. */
-               if (n > -1 && n < size)
+               if (n > -1 && (unsigned)n < size)
                        break;
                /* Else try again with more space. */
                if (n > -1) /* glibc 2.1 */