From e4d0bf0e648abd50bd232ee2ef3b989cf026ed6d Mon Sep 17 00:00:00 2001 From: Dominik Ermel Date: Thu, 22 Sep 2022 10:13:05 +0000 Subject: [PATCH] mgmt/mcumgr: Fix image erase returning improper error code on error The img_mgmt_erase could return MGMT_ERR_EOK even when img_mgmt_impl_erase_slot failed. Fixes #50522 Signed-off-by: Dominik Ermel --- subsys/mgmt/mcumgr/lib/cmd/img_mgmt/src/img_mgmt.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/subsys/mgmt/mcumgr/lib/cmd/img_mgmt/src/img_mgmt.c b/subsys/mgmt/mcumgr/lib/cmd/img_mgmt/src/img_mgmt.c index fb498eee4ce..e1b89e97a9c 100644 --- a/subsys/mgmt/mcumgr/lib/cmd/img_mgmt/src/img_mgmt.c +++ b/subsys/mgmt/mcumgr/lib/cmd/img_mgmt/src/img_mgmt.c @@ -279,17 +279,16 @@ img_mgmt_erase(struct mgmt_ctxt *ctxt) } rc = img_mgmt_impl_erase_slot(slot); - if (rc != 0) { img_mgmt_dfu_stopped(); + return rc; } - if (rc == 0) { - ok = zcbor_tstr_put_lit(zse, "rc") && - zcbor_int32_put(zse, 0); + if (zcbor_tstr_put_lit(zse, "rc") && zcbor_int32_put(zse, 0)) { + return MGMT_ERR_EOK; } - return ok ? MGMT_ERR_EOK : MGMT_ERR_EMSGSIZE; + return MGMT_ERR_EMSGSIZE; } static int