--- 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++;
 		}
