mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-21 12:05:17 +00:00
vsh: cmdComplete: Don't leak buffer for completion
The buffer which we assign to the 'rl_line_buffer' variable of readline would be overwritten and thus leaked on multiple invocations of cmdComplete in one session. Free/clear it after it's used. Hitting this leak was until recenly possible only in non-interactive batch mode and recently also in interactive mode as 'complete' can be used multiple times now interactively. Fixes: a0e1ada63c0afdc2af3b9405cbf637d8bd28700c Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
ac9c3c0b2c
commit
41400ac1dd
@ -3439,7 +3439,10 @@ cmdComplete(vshControl *ctl, const vshCmd *cmd)
|
||||
* In our case it's at the end of the whole line. */
|
||||
rl_point = strlen(rl_line_buffer);
|
||||
|
||||
if (!(matches = vshReadlineCompletion(arg, 0, 0)))
|
||||
matches = vshReadlineCompletion(arg, 0, 0);
|
||||
g_clear_pointer(&rl_line_buffer, g_free);
|
||||
|
||||
if (!matches)
|
||||
return false;
|
||||
|
||||
for (iter = matches; *iter; iter++) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user