From be84bbb82622e6e9dd29a3a9f34a90517c1c54cd Mon Sep 17 00:00:00 2001 From: Vivek Kumar Dutta <vivek.dutta@iopsys.eu> Date: Fri, 30 May 2025 13:29:54 +0530 Subject: [PATCH] fwbank: invert upgrade result check upgrade method updated to invert the logic and return failure in result, if input validation fails, final validation will be done base on `sysupgrade` ubus event. --- src/fw_images.c | 4 +--- src/fwbank.c | 8 ++++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/fw_images.c b/src/fw_images.c index 9444680..73bcc6a 100644 --- a/src/fw_images.c +++ b/src/fw_images.c @@ -112,7 +112,7 @@ static bool fwbank_set_bootbank(const char *bank_id) static bool fwbank_upgrade(const char *path, bool activate, const char *bank_id, const char *keep_settings) { json_object *json_obj = NULL; - bool res = false; + bool res = true; if (activate == false) { dmubus_call_blocking("fwbank", "upgrade", UBUS_ARGS{{"path", path, String}, {"auto_activate", "0", Boolean}, {"bank", bank_id, Integer}, {"keep_settings", "0", Boolean}}, 4, &json_obj); @@ -123,8 +123,6 @@ static bool fwbank_upgrade(const char *path, bool activate, const char *bank_id, if (json_obj) { char *result = dmjson_get_value(json_obj, 1, "result"); res = (DM_LSTRCMP(result, "ok") == 0) ? true : false; - } else { - res = false; } if (json_obj != NULL) diff --git a/src/fwbank.c b/src/fwbank.c index 251f631..74c6856 100644 --- a/src/fwbank.c +++ b/src/fwbank.c @@ -469,15 +469,15 @@ static bool is_upgrade_success(struct blob_buf *output_bb) // Parse the blob buffer for the "result" field if (blobmsg_parse(&policy, 1, &tb, blobmsg_data(output_bb->head), blobmsg_len(output_bb->head)) != 0) { - BBFDM_ERR("Failed to parse blobmsg data"); - return false; + BBFDM_INFO("Failed to parse upgrade result, assuming success"); + return true; } // Check if the "result" field exists and is of the correct type if (tb && blobmsg_type(tb) == BLOBMSG_TYPE_STRING) - return (strcmp(blobmsg_get_string(tb), "ok") == 0) ? true : false; + return (strcmp(blobmsg_get_string(tb), "failure") == 0) ? false : true; - return false; + return true; } struct blob_buf *sysmngr_fwbank_dump(void) -- GitLab