libvirt/tools
Michal Privoznik cab1e71f01 vsh: Don't init history in cmdComplete()
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@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2024-05-06 13:18:07 +02:00
..
bash-completion meson: Use dicts to initialize cfg_data objects 2022-04-01 15:33:19 +02:00
nss libvirt_nss: Fix ERROR() macro 2024-04-18 14:57:30 +02:00
wireshark meson: Replace meson.source_root() with meson.project_source_root() 2022-10-10 15:06:09 +02:00
libvirt_recover_xattrs.sh tools: fix iterating over argv when recovering xattr 2021-11-30 10:45:35 +00:00
libvirt_win_icon_16x16.ico
libvirt_win_icon_32x32.ico
libvirt_win_icon_48x48.ico
libvirt_win_icon_64x64.ico
libvirt-guests.service.in systemd: More tweaks to Description and Documentation lines 2023-11-06 23:45:04 +01:00
libvirt-guests.sh.in Extend libvirt-guests to shutdown only persistent VMs 2024-04-04 09:10:00 +02:00
meson.build tests: Re-implement '(virsh|virt-admin)-self-test' directly in meson 2024-04-02 14:24:30 +02:00
virsh_win_icon.rc
virsh-backup.c tools: Rename vshCommandOptStringReq to vshCommandOptString 2024-04-25 14:13:19 +02:00
virsh-backup.h
virsh-checkpoint.c virsh: Introduce new 'VSH_OT_ARGV' accessors 2024-04-25 14:13:19 +02:00
virsh-checkpoint.h
virsh-completer-checkpoint.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-checkpoint.h virsh-completer*.h: Use modern header style 2021-09-17 09:40:46 +02:00
virsh-completer-domain.c tools: Rename vshCommandOptStringReq to vshCommandOptString 2024-04-25 14:13:19 +02:00
virsh-completer-domain.h virsh: Move 'cmdEvent' and all of its machinery to virsh-domain-event.c 2022-03-03 11:06:56 +01:00
virsh-completer-host.c tools: Rename vshCommandOptStringReq to vshCommandOptString 2024-04-25 14:13:19 +02:00
virsh-completer-host.h virsh: Add completer for hypervisor-cpu-baseline --model 2022-10-10 14:31:43 +02:00
virsh-completer-interface.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-interface.h virsh-completer*.h: Use modern header style 2021-09-17 09:40:46 +02:00
virsh-completer-network.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-network.h virsh: Introduce net-update --section completer 2022-01-19 16:48:33 +01:00
virsh-completer-nodedev.c conf: move/rename hostdev PCI driver type enum to device_conf.h 2024-01-07 23:57:09 -05:00
virsh-completer-nodedev.h virsh: Provide completer for PCI backend drivers 2022-04-04 16:30:48 +02:00
virsh-completer-nwfilter.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-nwfilter.h virsh-completer*.h: Use modern header style 2021-09-17 09:40:46 +02:00
virsh-completer-pool.c virsh-completer: modify and fix bug in virshPoolTypeCompleter, now used for more commands 2024-02-20 12:08:22 +01:00
virsh-completer-pool.h virsh-completer: modify and fix bug in virshPoolTypeCompleter, now used for more commands 2024-02-20 12:08:22 +01:00
virsh-completer-secret.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-secret.h virsh-completer*.h: Use modern header style 2021-09-17 09:40:46 +02:00
virsh-completer-snapshot.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-snapshot.h virsh-completer*.h: Use modern header style 2021-09-17 09:40:46 +02:00
virsh-completer-volume.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-volume.h virsh: Provide completer for vol-wipe algorithms 2022-03-11 09:10:24 +01:00
virsh-completer.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer.h virsh: Introduce virshEnumComplete() 2022-03-15 13:36:56 +01:00
virsh-console.c virsh: Show 'connected to console' message later 2024-04-02 18:26:35 +02:00
virsh-console.h virsh: add console --resume support 2023-10-24 13:51:32 +02:00
virsh-domain-event.c tools: Rename vshCommandOptStringReq to vshCommandOptString 2024-04-25 14:13:19 +02:00
virsh-domain-event.h virsh: Move 'cmdEvent' and all of its machinery to virsh-domain-event.c 2022-03-03 11:06:56 +01:00
virsh-domain-monitor.c virsh: Introduce new 'VSH_OT_ARGV' accessors 2024-04-25 14:13:19 +02:00
virsh-domain-monitor.h
virsh-domain.c virsh: Introduce new 'VSH_OT_ARGV' accessors 2024-04-25 14:13:19 +02:00
virsh-domain.h virsh: Add mode option to domdirtyrate-calc virsh api 2022-02-21 13:34:16 +01:00
virsh-edit.c tools: Update format strings in translated messages (part 1) 2023-04-01 11:40:35 +02:00
virsh-host.c tools: Rename vshCommandOptStringReq to vshCommandOptString 2024-04-25 14:13:19 +02:00
virsh-host.h virsh-host: Avoid 'vir' prefix for locally declared VIR_ENUM* helpers 2021-07-23 09:59:12 +02:00
virsh-interface.c tools: Rename vshCommandOptStringReq to vshCommandOptString 2024-04-25 14:13:19 +02:00
virsh-interface.h
virsh-network.c virsh: Introduce new 'VSH_OT_ARGV' accessors 2024-04-25 14:13:19 +02:00
virsh-network.h virsh: Introduce net-update --section completer 2022-01-19 16:48:33 +01:00
virsh-nodedev.c tools: Rename vshCommandOptStringReq to vshCommandOptString 2024-04-25 14:13:19 +02:00
virsh-nodedev.h
virsh-nwfilter.c tools: Rename vshCommandOptStringReq to vshCommandOptString 2024-04-25 14:13:19 +02:00
virsh-nwfilter.h
virsh-pool.c tools: Rename vshCommandOptStringReq to vshCommandOptString 2024-04-25 14:13:19 +02:00
virsh-pool.h virsh-pool: Remove static from virshStoragePoolList{Free,Collect} 2021-06-16 10:32:33 +02:00
virsh-secret.c tools: Rename vshCommandOptStringReq to vshCommandOptString 2024-04-25 14:13:19 +02:00
virsh-secret.h
virsh-snapshot.c virsh: Introduce new 'VSH_OT_ARGV' accessors 2024-04-25 14:13:19 +02:00
virsh-snapshot.h
virsh-util.c tools: Rename vshCommandOptStringReq to vshCommandOptString 2024-04-25 14:13:19 +02:00
virsh-util.h virsh exposure of Network Metadata APIs 2023-08-25 12:36:37 +02:00
virsh-volume.c tools: Rename vshCommandOptStringReq to vshCommandOptString 2024-04-25 14:13:19 +02:00
virsh-volume.h virsh: Provide completer for vol-wipe algorithms 2022-03-11 09:10:24 +01:00
virsh.c vsh: Remove unused infrastructure for command completion 2024-04-25 14:13:19 +02:00
virsh.h virsh: Inline VIRSH_COMMON_OPT_FILE_FULL macro 2024-04-02 14:24:29 +02:00
virt-admin-completer.c lib: Drop internal virXXXPtr typedefs 2021-04-13 17:00:38 +02:00
virt-admin-completer.h
virt-admin.c vsh: Remove unused infrastructure for command completion 2024-04-25 14:13:19 +02:00
virt-admin.h lib: Drop internal virXXXPtr typedefs 2021-04-13 17:00:38 +02:00
virt-host-validate-bhyve.c virHostValidateBhyve: Heap allocate massive 'struct kld_file_stat' 2023-09-04 10:31:53 +02:00
virt-host-validate-bhyve.h
virt-host-validate-ch.c tools: Move error messages onto a single line 2023-09-04 09:35:36 +02:00
virt-host-validate-ch.h tools: add virt-host-validate-ch for ch driver 2021-10-12 17:28:35 +02:00
virt-host-validate-common.c virt-host-validate: Detect SMMU presence on ARMs by parsing IORT table 2023-04-06 12:48:22 +02:00
virt-host-validate-common.h tools: only fail validations if VIR_HOST_VALIDATE_FAIL is set 2021-06-08 08:52:07 +02:00
virt-host-validate-lxc.c
virt-host-validate-lxc.h
virt-host-validate-qemu.c tools: Move error messages onto a single line 2023-09-04 09:35:36 +02:00
virt-host-validate-qemu.h
virt-host-validate.c tools: Update format strings in translated messages (part 2) 2023-04-01 11:40:36 +02:00
virt-login-shell-helper.c tools: Update format strings in translated messages (part 2) 2023-04-01 11:40:36 +02:00
virt-login-shell.c Use G_N_ELEMENTS() more 2023-03-13 13:29:07 +01:00
virt-login-shell.conf
virt-pki-query-dn.c tools: Update format strings in translated messages (part 2) 2023-04-01 11:40:36 +02:00
virt-pki-validate.in meson: Use initconfdir 2023-05-05 15:08:25 +02:00
virt-qemu-qmp-proxy scripts: Fix the flake8 syntax-check failures 2023-06-29 11:51:27 +02:00
virt-qemu-sev-validate vir-qemu-sev-validate: Use string() method in xpath 2023-12-05 12:21:38 +01:00
virt-sanlock-cleanup.in
virt-xml-validate.in virt-xml-validate: Fix incorrect wildcards for XML roots 2022-07-07 12:21:16 +02:00
vsh-table.c lib: use struct zero initializer instead of memset 2023-08-03 16:41:19 +02:00
vsh-table.h vsh-table: Ensure NULL terminated arguments to vshTable*() 2021-12-17 15:05:58 +01:00
vsh.c vsh: Don't init history in cmdComplete() 2024-05-06 13:18:07 +02:00
vsh.h vsh: Refactor parsed option and command assignment 2024-04-25 14:13:19 +02:00