]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Handle short writes correctly.
authorTim Kientzle <kientzle@gmail.com>
Sun, 10 May 2009 19:43:44 +0000 (15:43 -0400)
committerTim Kientzle <kientzle@gmail.com>
Sun, 10 May 2009 19:43:44 +0000 (15:43 -0400)
SVN-Revision: 1078

libarchive/archive_check_magic.c

index 4a317de5dab915832b44c6390dd4e39327845554..b94448f5aa9ce74e99c36985c218b9de1a82b745 100644 (file)
@@ -50,8 +50,16 @@ __FBSDID("$FreeBSD: src/lib/libarchive/archive_check_magic.c,v 1.9 2008/12/06 05
 static void
 errmsg(const char *m)
 {
-       size_t s = write(2, m, strlen(m));
-       (void)s; /* UNUSED */
+       size_t s = strlen(m);
+       ssize_t written;
+
+       while (s > 0) {
+               written = write(2, m, strlen(m));
+               if (written <= 0)
+                       return;
+               m += written;
+               s -= written;
+       }
 }
 
 static void