On 2/18/20 4:52 AM, Richard W.M. Jones wrote:
Unfortunately you cannot restore argv by setting *p = '=' :-(
The reason is we advertize that plugins are allowed to save they ‘const char *key’ pointer passed to them in .config, but assigning *p = '=' changes the key string from "key" back to "key=value".
D'oh. And my bad for only running the subset of the testsuite that I was working on ('make -C tests check TESTS=test-vddk.sh') rather than the full suite, or I would have noticed the regression from my one-liner. Thanks for fixing it.
Surprisingly only test-eval.sh actually broke, but other plugins are undoubtedly affected.
My alternate fix is fairly horrible, but passes all the tests and valgrind.
It looks right to me - if we can't modify argv[] in place, we have to copy off a stable version somewhere. Your patch is definitely longer than my one-liner, but I don't see any way to shorten it. ACK. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org