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; control->msgerr = stderr;
register_outputfile(control, control->msgout); register_outputfile(control, control->msgout);
control->flags = FLAG_SHOW_PROGRESS | FLAG_KEEP_FILES | FLAG_THRESHOLD; control->flags = FLAG_SHOW_PROGRESS | FLAG_KEEP_FILES | FLAG_THRESHOLD;
control->suffix = ".lrz"; control->suffix = strdup(".lrz");
control->compression_level = 7; control->compression_level = 7;
control->ramsize = get_ram(control); control->ramsize = get_ram(control);
if (unlikely(control->ramsize == -1)) if (unlikely(control->ramsize == -1))

6
main.c
View file

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