[Skiboot] [PATCH] pflash: Fail when file is larger than partition

Joel Stanley joel at jms.id.au
Fri Oct 28 14:28:25 AEDT 2016


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 <joel at jms.id.au>
---

Compile tested only

 external/pflash/pflash.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/external/pflash/pflash.c b/external/pflash/pflash.c
index 89bd2fe73a04..c93bbd4533bb 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");
-- 
2.9.3



More information about the Skiboot mailing list