diff options
| author | Petr Štetiar | 2020-01-03 00:26:50 +0000 |
|---|---|---|
| committer | Petr Štetiar | 2020-01-05 10:47:03 +0000 |
| commit | 9814807bd71cba074a23707c32d163b560b551cf (patch) | |
| tree | 9611a8af322aaac2d45af8666776ea87a71c23f1 | |
| parent | c7a2db3c1eb66080a1520a5748493cc0b55fac93 (diff) | |
| download | procd-9814807bd71cba074a23707c32d163b560b551cf.tar.gz | |
system: sysupgrade: fix possibly misleading error
Fix possibly misleading error "Firmware image is broken and cannot be
installed" which could be produced by JSON without expected validation
variables, where "Validation script provided invalid input" error message
makes more sense.
Cc: Rafał Miłecki <rafal@milecki.pl>
Tested-by: Kuan-Yi Li <kyli@abysm.org>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
| -rw-r--r-- | system.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -672,6 +672,12 @@ static int sysupgrade(struct ubus_context *ctx, struct ubus_object *obj, blobmsg_parse(validation_policy, __VALIDATION_MAX, validation, blob_data(b.head), blob_len(b.head)); + if (!validation[VALIDATION_VALID] || !validation[VALIDATION_FORCEABLE] || + !validation[VALIDATION_ALLOW_BACKUP]) { + sysupgrade_error(ctx, req, "Validation script provided invalid input"); + return UBUS_STATUS_INVALID_ARGUMENT; + } + valid = validation[VALIDATION_VALID] && blobmsg_get_bool(validation[VALIDATION_VALID]); forceable = validation[VALIDATION_FORCEABLE] && blobmsg_get_bool(validation[VALIDATION_FORCEABLE]); allow_backup = validation[VALIDATION_ALLOW_BACKUP] && blobmsg_get_bool(validation[VALIDATION_ALLOW_BACKUP]); |