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