[Skiboot] [PATCH] pflash: Fail when file is larger than partition
Cyril Bur
cyrilbur at gmail.com
Tue Nov 1 16:14:28 AEDT 2016
On Fri, 2016-10-28 at 13:58 +1030, Joel Stanley wrote:
> 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.
>
Lets all enjoy that I didn't actually type anything last time... Joels
code is always perfect though :).
Tested on palmetto trying to flash a skiboot.lid which was too big and
a skiboot.lid.xz.
> Signed-off-by: Joel Stanley <joel at jms.id.au>
Reviewed-by: Cyril Bur <cyril.bur at au1.ibm.com>
> ---
>
> 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");
More information about the Skiboot
mailing list