[syslinux:master] isohybrid: Use ftruncate instead of seek for final padding

syslinux-bot for P J P pj.pandit at yahoo.co.in
Tue Oct 12 22:42:02 PDT 2010


Commit-ID:  648a240b7b69ff5f6c217c29ed46ccac5e9ad4c2
Gitweb:     http://syslinux.zytor.com/commit/648a240b7b69ff5f6c217c29ed46ccac5e9ad4c2
Author:     P J P <pj.pandit at yahoo.co.in>
AuthorDate: Tue, 14 Sep 2010 12:08:37 +0530
Committer:  H. Peter Anvin <hpa at zytor.com>
CommitDate: Tue, 12 Oct 2010 22:35:05 -0700

isohybrid: Use ftruncate instead of seek for final padding

Pad the image via ftruncate instead of seeking to the end (which was
done incorrectly).

Signed-off-by: H. Peter Anvin <hpa at zytor.com>


---
 utils/isohybrid.c |   12 ++++--------
 1 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/utils/isohybrid.c b/utils/isohybrid.c
index 57c1015..7ee9a7f 100644
--- a/utils/isohybrid.c
+++ b/utils/isohybrid.c
@@ -543,15 +543,11 @@ main(int argc, char *argv[])
 
     if (padding)
     {
-        if (!(buf = realloc(buf, padding)))
-            err(1, "%s: could not re-size buffer", argv[0]);
+        if (fsync(fileno(fp)))
+            err(1, "%s: could not synchronise", argv[0]);
 
-        if (fseek(fp, isostat.st_size, SEEK_SET))
-            err(1, "%s: seek error - 6", argv[0]);
-
-        memset(buf, 0, padding);
-        if (fwrite(buf, sizeof(char), padding, fp) != (size_t)padding)
-            err(1, "%s: write error - 2", argv[0]);
+        if (ftruncate(fileno(fp), isostat.st_size + padding))
+            err(1, "%s: could not add padding bytes", argv[0]);
     }
 
     free(buf);



More information about the Syslinux-commits mailing list