From 4382d472a517d6a39f919b139eed3c86c6db9009 Mon Sep 17 00:00:00 2001 From: Joel Stanley Date: Fri, 28 Oct 2016 13:58:25 +1030 Subject: pflash: Fail when file is larger than partition Currently we warn the user and truncate the file by default. Instead abort as this is rarely the desired behaviour. You can still shoot yourself in the foot by passing --force. Signed-off-by: Joel Stanley Reviewed-by: Cyril Bur Signed-off-by: Stewart Smith --- external/pflash/pflash.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'external') diff --git a/external/pflash/pflash.c b/external/pflash/pflash.c index 89bd2fe..c93bbd4 100644 --- a/external/pflash/pflash.c +++ b/external/pflash/pflash.c @@ -839,14 +839,20 @@ int main(int argc, char *argv[]) if (!write_size) write_size = pmaxsz; - /* Crop write size to partition size */ - if (write_size > pmaxsz) { + /* Crop write size to partition size if --force was passed */ + if (write_size > pmaxsz && !must_confirm) { printf("WARNING: Size (%d bytes) larger than partition" " (%d bytes), cropping to fit\n", write_size, pmaxsz); write_size = pmaxsz; + } else if (write_size > pmaxsz) { + printf("ERROR: Size (%d bytes) larger than partition" + " (%d bytes). Use --force to force\n", + write_size, pmaxsz); + exit(1); } + /* If erasing, check partition alignment */ if (erase && ((pstart | pmaxsz) & 0xfff)) { fprintf(stderr,"Partition not aligned properly\n"); -- cgit v1.1