mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 02:24:32 +01:00
When there is no exclusion occurring from the cmds list - for example -
cmds contains ["read-vdso32"] and excludes contains ["archive"] - the
main loop completes with ci == cj == 0. In the original code the loop
processing the remaining elements in the list was conditional:
if (ci != cj) { ...}
So we end up in the assertion loop since ci < cmds->cnt and we
incorrectly try to assert the list elements to be NULL and fail with
the following error
help.c:104: exclude_cmds: Assertion `cmds->names[ci] == NULL' failed.
Fix this by moving the if (ci != cj) check inside of a broader loop.
If ci != cj, left shift the list elements, as before, and then
unconditionally advance the ci and cj indicies which also covers the
ci == cj case.
Fixes:
|
||
|---|---|---|
| .. | ||
| Build | ||
| exec-cmd.c | ||
| exec-cmd.h | ||
| help.c | ||
| help.h | ||
| Makefile | ||
| pager.c | ||
| pager.h | ||
| parse-options.c | ||
| parse-options.h | ||
| run-command.c | ||
| run-command.h | ||
| sigchain.c | ||
| sigchain.h | ||
| subcmd-config.c | ||
| subcmd-config.h | ||
| subcmd-util.h | ||