Re: [PATCH] vsh: Don't init history in cmdComplete()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, May 04, 2024 at 05:32:39AM GMT, Michal Privoznik wrote:
> Recent rework of virshtest uncovered a subtle bug that was
> dormant in now vsh but before that even in monolithic virsh.
>
> In vsh.c there's this vshReadlineInit() function that's supposed
> to initialize readline library, i.e. set those global rl_*
> pointers.  But it also initializes history library. Then, when
> virsh/virt-admin quits, vshReadlineDeinit() is called which
> writes history into a file (ensuring the parent directory
> exists). So far no problem.
>
> Problem arises when cmdComplete() is called (from a bash
> completer, for instance). It does not guard call to
> vshReadlineInit() with check for interactive shell (and it should
> not), but it sets ctl->historyfile which signals to
> vshReadlineDeinit() the history should be written.
>
> Now, no real history is written, because nothing was entered on
> the stdin, but the parent directory is created nevertheless. With
> recent movement in virshtest.c this means some test cases might
> create virsh history file which breaks our promise of not
> touching user's data in test suite.
>
> Resolves: https://bugs.gentoo.org/931109
> Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx>
> ---
>  tools/vsh.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)

This caused FTBFS on Debian too. I was going to investigate the
matter today, and seeing the fix merged already was a nice surprise!
Thank you for taking care of this :)

-- 
Andrea Bolognani / Red Hat / Virtualization
_______________________________________________
Devel mailing list -- devel@xxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxx




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux