apk: fix all_options array size off-by-one
merge_options() will write one more entry to the options table which is the end-of-table indicator. Allocate memory for it too. valgrind did not pick it up due to being in stack; changing alloca to malloc would make valgrind notice the issue too. Reported-by: Mobile Stream <info@mobile-stream.com>cute-signatures
parent
0e3be0fd4a
commit
40ffdfe623
|
@ -542,7 +542,7 @@ int main(int argc, char **argv)
|
|||
applet = deduce_applet(argc, argv);
|
||||
if (applet && applet->optgroups[0]) optgroups = applet->optgroups;
|
||||
|
||||
for (i = 0, num_options = 0; optgroups[i]; i++)
|
||||
for (i = 0, num_options = 1; optgroups[i]; i++)
|
||||
num_options += optgroups[i]->num_options;
|
||||
all_options = alloca(sizeof(struct option) * num_options);
|
||||
for (i = r = 0; optgroups[i]; r += optgroups[i]->num_options, i++)
|
||||
|
|
Loading…
Reference in New Issue