From 648a240b7b69ff5f6c217c29ed46ccac5e9ad4c2 Mon Sep 17 00:00:00 2001 From: P J P Date: Tue, 14 Sep 2010 12:08:37 +0530 Subject: 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 --- utils/isohybrid.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'utils') diff --git a/utils/isohybrid.c b/utils/isohybrid.c index 57c1015e..7ee9a7f0 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); -- cgit v1.2.3