Due to wrong specification of arguments to getopt_long() any
attempt to set pidfile resulted in:
1) the default to be leaked
2) the @pidfile variable to be set to NULL (because optarg is
NULL without this patch).
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
scsi/qemu-pr-helper.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/scsi/qemu-pr-helper.c b/scsi/qemu-pr-helper.c
index 3facbba170..21e1b8ea60 100644
--- a/scsi/qemu-pr-helper.c
+++ b/scsi/qemu-pr-helper.c
@@ -903,12 +903,12 @@ static int drop_privileges(void)
int main(int argc, char **argv)
{
- const char *sopt = "hVk:fdT:u:g:vq";
+ const char *sopt = "hVk:f:dT:u:g:vq";
struct option lopt[] = {
{ "help", no_argument, NULL, 'h' },
{ "version", no_argument, NULL, 'V' },
{ "socket", required_argument, NULL, 'k' },
- { "pidfile", no_argument, NULL, 'f' },
+ { "pidfile", required_argument, NULL, 'f' },
{ "daemon", no_argument, NULL, 'd' },
{ "trace", required_argument, NULL, 'T' },
{ "user", required_argument, NULL, 'u' },
@@ -952,7 +952,8 @@ int main(int argc, char **argv)
}
break;
case 'f':
- pidfile = optarg;
+ g_free(pidfile);
+ pidfile = g_strdup(optarg);
break;
#ifdef CONFIG_LIBCAP
case 'u': {
--
2.16.1
On 03/24/2018 12:14 AM, Michal Privoznik wrote: > Due to wrong specification of arguments to getopt_long() any > attempt to set pidfile resulted in: > > 1) the default to be leaked > 2) the @pidfile variable to be set to NULL (because optarg is > NULL without this patch). Broken in introduction with commit b855f8d, in 2.11. > > Signed-off-by: Michal Privoznik <mprivozn@redhat.com> CC: qemu-stable@nongnu.org Reviewed-by: Eric Blake <eblake@redhat.com> -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
On 03/24/2018 12:14 AM, Michal Privoznik wrote: > Due to wrong specification of arguments to getopt_long() any > attempt to set pidfile resulted in: > > 1) the default to be leaked > 2) the @pidfile variable to be set to NULL (because optarg is > NULL without this patch). Broken since the introduction in commit b855f8d, in 2.11 (documentation has always mentioned the argument, code has never supported it). > > Signed-off-by: Michal Privoznik <mprivozn@redhat.com> CC: qemu-stable@nongnu.org Reviewed-by: Eric Blake <eblake@redhat.com> -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
On 24/03/2018 12:46, Eric Blake wrote: > On 03/24/2018 12:14 AM, Michal Privoznik wrote: >> Due to wrong specification of arguments to getopt_long() any >> attempt to set pidfile resulted in: >> >> 1) the default to be leaked >> 2) the @pidfile variable to be set to NULL (because optarg is >> NULL without this patch). > > Broken since the introduction in commit b855f8d, in 2.11 (documentation > has always mentioned the argument, code has never supported it). Queued, thanks. Paolo >> >> Signed-off-by: Michal Privoznik <mprivozn@redhat.com> > > CC: qemu-stable@nongnu.org > Reviewed-by: Eric Blake <eblake@redhat.com> >
© 2016 - 2026 Red Hat, Inc.