vsh: Don't crash when @text is NULL in vshCompleterFilter()

This can happen only for cmdComplete() in interactive mode (which
I'm still not convinced is any useful for users and whether we
should support it). Anyway, running plain 'complete' command with
no additional arguments boils down to @text being NULL in
vshReadlineParse() which handles the case just right but is then
subsequently passed to vshCompleterFilter() which isn't prepared
for this case.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
Michal Privoznik 2024-05-27 11:06:41 +02:00
parent f6ab0d5bdd
commit 0a2508ee77

View File

@ -2820,7 +2820,7 @@ vshCompleterFilter(char ***list,
newList = g_new0(char *, list_len + 1); newList = g_new0(char *, list_len + 1);
for (i = 0; i < list_len; i++) { for (i = 0; i < list_len; i++) {
if (!STRPREFIX((*list)[i], text)) { if (text && !STRPREFIX((*list)[i], text)) {
g_clear_pointer(&(*list)[i], g_free); g_clear_pointer(&(*list)[i], g_free);
continue; continue;
} }