Fix control->suffix being deallocated as heap memory as reported by Pietro Borrello.

This commit is contained in:
Con Kolivas 2022-02-25 22:35:20 +11:00
parent 30f5be918a
commit 5faf80cd53
2 changed files with 5 additions and 3 deletions

View file

@ -1338,7 +1338,7 @@ bool initialise_control(rzip_control *control)
control->msgerr = stderr;
register_outputfile(control, control->msgout);
control->flags = FLAG_SHOW_PROGRESS | FLAG_KEEP_FILES | FLAG_THRESHOLD;
control->suffix = ".lrz";
control->suffix = strdup(".lrz");
control->compression_level = 7;
control->ramsize = get_ram(control);
if (unlikely(control->ramsize == -1))

6
main.c
View file

@ -458,7 +458,8 @@ int main(int argc, char *argv[])
if (unlikely(STDOUT))
failure("Cannot specify an output filename when outputting to stdout\n");
control->outname = optarg;
control->suffix = "";
dealloc(control->suffix);
control->suffix = strdup("");
break;
case 'O':
if (control->outname) /* can't mix -o and -O */
@ -493,7 +494,8 @@ int main(int argc, char *argv[])
failure("Specified output filename already, can't specify an extension.\n");
if (unlikely(STDOUT))
failure("Cannot specify a filename suffix when outputting to stdout\n");
control->suffix = optarg;
dealloc(control->suffix);
control->suffix = strdup(optarg);
break;
case 't':
if (control->outname)