diff --git a/programs/zstdcli.c b/programs/zstdcli.c index d0821db9741..2247ab9d686 100644 --- a/programs/zstdcli.c +++ b/programs/zstdcli.c @@ -1102,9 +1102,9 @@ int main(int argCount, const char* argv[]) } #endif if (longCommandWArg(&argument, "--threads")) { NEXT_UINT32(nbWorkers); setThreads_non1 = (nbWorkers != 1); continue; } + if (longCommandWArg(&argument, "--memlimit-decompress")) { NEXT_UINT32(memLimit); continue; } if (longCommandWArg(&argument, "--memlimit")) { NEXT_UINT32(memLimit); continue; } if (longCommandWArg(&argument, "--memory")) { NEXT_UINT32(memLimit); continue; } - if (longCommandWArg(&argument, "--memlimit-decompress")) { NEXT_UINT32(memLimit); continue; } if (longCommandWArg(&argument, "--block-size")) { NEXT_TSIZE(chunkSize); continue; } /* hidden command, prefer --split below */ if (longCommandWArg(&argument, "--split")) { NEXT_TSIZE(chunkSize); continue; } if (longCommandWArg(&argument, "--jobsize")) { NEXT_TSIZE(chunkSize); continue; } /* note: overloaded variable */ diff --git a/tests/cli-tests/basic/memlimit_alias.sh b/tests/cli-tests/basic/memlimit_alias.sh new file mode 100755 index 00000000000..60b22733d7d --- /dev/null +++ b/tests/cli-tests/basic/memlimit_alias.sh @@ -0,0 +1,15 @@ +#!/bin/sh +set -eu + +datagen -g500K > input +zstd -q input +for option in --memlimit --memory --memlimit-decompress; do + zstd -dc "$option=8M" input.zst > output + cmp input output + zstd -dc "$option" 8M input.zst > output + cmp input output + if zstd -qdc "$option=1K" input.zst > output 2> error; then + die "Decompression exceeded the memory limit" + fi + grep -q 'Window size larger than maximum' error +done diff --git a/tests/cli-tests/basic/memlimit_alias.sh.stderr.exact b/tests/cli-tests/basic/memlimit_alias.sh.stderr.exact new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/cli-tests/basic/memlimit_alias.sh.stdout.exact b/tests/cli-tests/basic/memlimit_alias.sh.stdout.exact new file mode 100644 index 00000000000..e69de29bb2d