Message ID | 149373610338.5144.9635049015143453288.stgit@bahia.lan |
---|---|
State | New |
Headers | show |
On 05/02/2017 11:41 AM, Greg Kurz wrote: > When invoking the script with -s, we end up passing a bogus value > to QEMU: > > $ ./scripts/qmp/qom-set -s /var/tmp/qmp-sock-exp /machine.accel kvm > {} > $ ./scripts/qmp/qom-get -s /var/tmp/qmp-sock-exp /machine.accel > /var/tmp/qmp-sock-exp > > This happens because sys.argv[2] isn't necessarily the command line > argument that holds the value. It is sys.argv[4] when -s was also > passed. > > Actually, the code already has a variable to handle that. This patch > simply uses it. > > Signed-off-by: Greg Kurz <groug@kaod.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > scripts/qmp/qom-set | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/scripts/qmp/qom-set b/scripts/qmp/qom-set > index 54ecfecc531e..94e27789224c 100755 > --- a/scripts/qmp/qom-set > +++ b/scripts/qmp/qom-set > @@ -61,4 +61,4 @@ else: > srv = QEMUMonitorProtocol(socket_path) > srv.connect() > > -print srv.command('qom-set', path=path, property=prop, value=sys.argv[2]) > +print srv.command('qom-set', path=path, property=prop, value=value) > >
Greg Kurz <groug@kaod.org> writes: > When invoking the script with -s, we end up passing a bogus value > to QEMU: > > $ ./scripts/qmp/qom-set -s /var/tmp/qmp-sock-exp /machine.accel kvm > {} > $ ./scripts/qmp/qom-get -s /var/tmp/qmp-sock-exp /machine.accel > /var/tmp/qmp-sock-exp > > This happens because sys.argv[2] isn't necessarily the command line > argument that holds the value. It is sys.argv[4] when -s was also > passed. > > Actually, the code already has a variable to handle that. This patch > simply uses it. > > Signed-off-by: Greg Kurz <groug@kaod.org> > --- > scripts/qmp/qom-set | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/scripts/qmp/qom-set b/scripts/qmp/qom-set > index 54ecfecc531e..94e27789224c 100755 > --- a/scripts/qmp/qom-set > +++ b/scripts/qmp/qom-set > @@ -61,4 +61,4 @@ else: > srv = QEMUMonitorProtocol(socket_path) > srv.connect() > > -print srv.command('qom-set', path=path, property=prop, value=sys.argv[2]) > +print srv.command('qom-set', path=path, property=prop, value=value) Given Python modules like argparse, doing option parsing by hand is basically stupid. This patch fixes it without making it any stupider. Sold. Reviewed-by: Markus Armbruster <armbru@redhat.com>
Greg Kurz <groug@kaod.org> writes: > When invoking the script with -s, we end up passing a bogus value > to QEMU: > > $ ./scripts/qmp/qom-set -s /var/tmp/qmp-sock-exp /machine.accel kvm > {} > $ ./scripts/qmp/qom-get -s /var/tmp/qmp-sock-exp /machine.accel > /var/tmp/qmp-sock-exp > > This happens because sys.argv[2] isn't necessarily the command line > argument that holds the value. It is sys.argv[4] when -s was also > passed. > > Actually, the code already has a variable to handle that. This patch > simply uses it. > > Signed-off-by: Greg Kurz <groug@kaod.org> Applied to qapi-next, thanks!
diff --git a/scripts/qmp/qom-set b/scripts/qmp/qom-set index 54ecfecc531e..94e27789224c 100755 --- a/scripts/qmp/qom-set +++ b/scripts/qmp/qom-set @@ -61,4 +61,4 @@ else: srv = QEMUMonitorProtocol(socket_path) srv.connect() -print srv.command('qom-set', path=path, property=prop, value=sys.argv[2]) +print srv.command('qom-set', path=path, property=prop, value=value)
When invoking the script with -s, we end up passing a bogus value to QEMU: $ ./scripts/qmp/qom-set -s /var/tmp/qmp-sock-exp /machine.accel kvm {} $ ./scripts/qmp/qom-get -s /var/tmp/qmp-sock-exp /machine.accel /var/tmp/qmp-sock-exp This happens because sys.argv[2] isn't necessarily the command line argument that holds the value. It is sys.argv[4] when -s was also passed. Actually, the code already has a variable to handle that. This patch simply uses it. Signed-off-by: Greg Kurz <groug@kaod.org> --- scripts/qmp/qom-set | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)