The third_arg for a dfu alt is read as an integer and is overloaded for
different supported backends. For ext4 and fat, this third_arg
represents the partition and forms the dev part string, which should
have its partition in hex. This commit fixes dfu ext4/fat usage for
devices with ten or more partitions.

Signed-off-by: Ivan Pang <ip...@amazon.com>
---

 drivers/dfu/dfu_mmc.c  | 2 +-
 drivers/dfu/dfu_scsi.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dfu/dfu_mmc.c b/drivers/dfu/dfu_mmc.c
index c19eb919388..a91671755e1 100644
--- a/drivers/dfu/dfu_mmc.c
+++ b/drivers/dfu/dfu_mmc.c
@@ -117,7 +117,7 @@ static int mmc_file_op(enum dfu_op op, struct dfu_entity 
*dfu,
                return -1;
        }
 
-       snprintf(dev_part_str, sizeof(dev_part_str), "%d:%d",
+       snprintf(dev_part_str, sizeof(dev_part_str), "%d:%x",
                 dfu->data.mmc.dev, dfu->data.mmc.part);
 
        ret = fs_set_blk_dev("mmc", dev_part_str, fstype);
diff --git a/drivers/dfu/dfu_scsi.c b/drivers/dfu/dfu_scsi.c
index 9f95194784c..7ec34a8f7e3 100644
--- a/drivers/dfu/dfu_scsi.c
+++ b/drivers/dfu/dfu_scsi.c
@@ -96,7 +96,7 @@ static int scsi_file_op(enum dfu_op op, struct dfu_entity 
*dfu, u64 offset, void
                return -1;
        }
 
-       snprintf(dev_part_str, sizeof(dev_part_str), "%d:%d", 
dfu->data.scsi.dev,
+       snprintf(dev_part_str, sizeof(dev_part_str), "%d:%x", 
dfu->data.scsi.dev,
                 dfu->data.scsi.part);
 
        ret = fs_set_blk_dev("scsi", dev_part_str, fstype);
-- 
2.47.1

Reply via email to