diff options
| author | Marek Vasut <[email protected]> | 2026-01-28 20:42:03 +0100 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2026-02-06 09:29:55 -0600 |
| commit | 109e378e9ba791b8dffaf86aa043f20d41d2adaf (patch) | |
| tree | 623929e081a9ec9b2aa8547a7d479575b88a127b /cmd | |
| parent | 3a76ba66ecb65b892de8b16360a8b0e93415f712 (diff) | |
cmd: zip: Add missing unmap_sysmem() for buffers in the unzip command
Unmap the sysmem that got mapped by this command.
Use symbolic return value for the command while updating
the return value handling.
Signed-off-by: Marek Vasut <[email protected]>
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/unzip.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/cmd/unzip.c b/cmd/unzip.c index ba83995040b..39af50f488d 100644 --- a/cmd/unzip.c +++ b/cmd/unzip.c @@ -16,6 +16,8 @@ static int do_unzip(struct cmd_tbl *cmdtp, int flag, int argc, { unsigned long src, dst; unsigned long src_len = ~0UL, dst_len = ~0UL; + void *srcp, *dstp; + int ret; switch (argc) { case 4: @@ -29,14 +31,21 @@ static int do_unzip(struct cmd_tbl *cmdtp, int flag, int argc, return CMD_RET_USAGE; } - if (gunzip(map_sysmem(dst, dst_len), dst_len, map_sysmem(src, 0), - &src_len) != 0) - return 1; + srcp = map_sysmem(dst, dst_len); + dstp = map_sysmem(src, 0); + + ret = gunzip(srcp, dst_len, dstp, &src_len); + + unmap_sysmem(dstp); + unmap_sysmem(srcp); + + if (ret) + return CMD_RET_FAILURE; printf("Uncompressed size: %lu = 0x%lX\n", src_len, src_len); env_set_hex("filesize", src_len); - return 0; + return CMD_RET_SUCCESS; } U_BOOT_CMD( |
