scripts uses either a free-standing "file" argument, or the value passed as --log-out "file". Additional filenames are ignored. They are also ignored if --log-in "file" is given, as it turns off output logging by default (can still be overriden by adding --log-out). Avoid surprises when passing multiple filenames by writing usage message instead. Signed-off-by: Chris Hofstaedtler <zeha@xxxxxxxxxx> Reported-by: наб <nabijaczleweli@xxxxxxxxxxxxxxxxxx> Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1016193 --- term-utils/script.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/term-utils/script.c b/term-utils/script.c index 516a6cf93..c4b8e3337 100644 --- a/term-utils/script.c +++ b/term-utils/script.c @@ -889,9 +889,11 @@ int main(int argc, char **argv) /* default if no --log-* specified */ if (!outfile && !infile) { - if (argc > 0) + if (argc > 0) { outfile = argv[0]; - else { + argc--; + argv++; + } else { die_if_link(&ctl, DEFAULT_TYPESCRIPT_FILENAME); outfile = DEFAULT_TYPESCRIPT_FILENAME; } @@ -900,6 +902,12 @@ int main(int argc, char **argv) log_associate(&ctl, &ctl.out, outfile, SCRIPT_FMT_RAW); } + if (argc > 0) { + /* only one filename is accepted. if --log-out was given, + * freestanding filename is ignored */ + usage(); + } + if (timingfile) { /* the old SCRIPT_FMT_TIMING_SIMPLE should be used when * recoding output only (just for backward compatibility), -- 2.38.1