summaryrefslogtreecommitdiffstats
path: root/usr.bin/mkimg
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2016-12-11 03:59:37 +0000
committermarcel <marcel@FreeBSD.org>2016-12-11 03:59:37 +0000
commit33b27aba3b36238c41e0addd8644ee339f569116 (patch)
treefbe98b5f5b5bc54d9516498e730f4331bb52c21e /usr.bin/mkimg
parenta3f7633492116879dd46a5b65ae7599c56f7eea7 (diff)
downloadFreeBSD-src-33b27aba3b36238c41e0addd8644ee339f569116.zip
FreeBSD-src-33b27aba3b36238c41e0addd8644ee339f569116.tar.gz
MFC r306299:
Update local variable 'block' after calling capacity_resize(), otherwise format_resize(), which is called right after, isn't getting the current/actual image size. Rather than rounding up, format_resize() could end up truncating the size and we don't allow that by design.
Diffstat (limited to 'usr.bin/mkimg')
-rw-r--r--usr.bin/mkimg/mkimg.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/usr.bin/mkimg/mkimg.c b/usr.bin/mkimg/mkimg.c
index 5a4b9f9..5d41e3b 100644
--- a/usr.bin/mkimg/mkimg.c
+++ b/usr.bin/mkimg/mkimg.c
@@ -463,13 +463,16 @@ mkimg(void)
block = scheme_metadata(SCHEME_META_IMG_END, block);
error = image_set_size(block);
- if (!error)
+ if (!error) {
error = capacity_resize(block);
- if (!error)
+ block = image_get_size();
+ }
+ if (!error) {
error = format_resize(block);
+ block = image_get_size();
+ }
if (error)
errc(EX_IOERR, error, "image sizing");
- block = image_get_size();
ncyls = block / (nsecs * nheads);
error = scheme_write(block);
if (error)
OpenPOWER on IntegriCloud