void-packages/srcpkgs/detox/patches/detox-1.2.0.fix-invalid-mem...

24 lines
666 B
Diff

--- parse_options_getopt.c.dt
+++ parse_options_getopt.c
@@ -178,15 +178,17 @@ struct detox_options *parse_options_geto
main_options->files = malloc(sizeof(char *) * 10);
i = 0;
- max = 0;
+ max = 10;
if (optind < argc) {
while (optind < argc) {
- main_options->files[i++] = strdup(argv[optind]);
- if (i > max) {
+ /* not enough space for the next file and
+ possible ending NULL -> realloc */
+ if (i + 2 > max) {
main_options->files = realloc(main_options->files, sizeof(char *) * (10 + max));
max += 10;
}
+ main_options->files[i++] = strdup(argv[optind]);
optind++;
}