From: "Roger Pau Monné" <roger.pau@citrix.com>
To: Anthony PERARD <anthony@xenproject.org>
Cc: qemu-devel@nongnu.org,
"Stefano Stabellini" <sstabellini@kernel.org>,
"Paul Durrant" <paul@xen.org>,
"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/2] xen: do not use '%ms' scanf specifier
Date: Thu, 9 Jan 2025 17:15:30 +0100 [thread overview]
Message-ID: <Z3_2IhGZvpF-5IiX@macbook.local> (raw)
In-Reply-To: <Z3-sJMXpiFUoATHz@l14>
On Thu, Jan 09, 2025 at 11:59:48AM +0100, Anthony PERARD wrote:
> On Tue, Jan 07, 2025 at 10:31:40AM +0100, Roger Pau Monne wrote:
> > The 'm' parameter used to request auto-allocation of the destination variable
> > is not supported on FreeBSD, and as such leads to failures to parse.
> >
> > What's more, the current usage of '%ms' with xs_node_scanf() is pointless, as
> > it just leads to a double allocation of the same string. Instead use
> > qemu_xen_xs_read() to read the whole xenstore node.
> >
> > Fixes: a783f8ad4ec9 ('xen: add a mechanism to automatically create XenDevice-s...')
> > Fixes: 9b7737469080 ('hw/xen: update Xen console to XenDevice model')
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > ---
> > hw/char/xen_console.c | 11 +++++++++--
> > hw/xen/xen-bus.c | 7 +++++--
> > 2 files changed, 14 insertions(+), 4 deletions(-)
> >
> > diff --git a/hw/char/xen_console.c b/hw/char/xen_console.c
> > index af706c7ef440..18afd214c2f6 100644
> > --- a/hw/char/xen_console.c
> > +++ b/hw/char/xen_console.c
> > @@ -531,6 +531,7 @@ static void xen_console_device_create(XenBackendInstance *backend,
> > const char *name = xen_backend_get_name(backend);
> > unsigned long number;
> > char *fe = NULL, *type = NULL, *output = NULL;
> > + const char *node_path;
>
> Is "const" correct when we are changing to which string `node_path` is
> pointing at? Also, why "const"? Also, compiler complains that we can't
> free a "const something*".
It's my understanding that the proposed const signals that the pointer
value can change, but the contents of the pointer cannot (iow: the
string cannot be modified).
My build seem to be fine, but I see that g_free() doesn't seem to take
a const pointer. Will adjust.
> > char label[32];
> > XenDevice *xendev = NULL;
> > XenConsole *con;
> > @@ -550,7 +551,10 @@ static void xen_console_device_create(XenBackendInstance *backend,
> > goto fail;
> > }
> >
> > - if (xs_node_scanf(xsh, XBT_NULL, fe, "type", errp, "%ms", &type) != 1) {
> > + node_path = g_strdup_printf("%s/type", fe);
> > + type = qemu_xen_xs_read(xsh, XBT_NULL, node_path, NULL);
> > + g_free(node_path);
>
> I feel like we want "xs_node_read()" which would be similair to
> xs_node_vscanf() but would simply return the result of
> qemu_xen_xs_read(). This would avoid the need format of the node path in
> several place in the code. But it's OK like that as well.
I was about to introduce such, but didn't end up doing. I can do.
Thanks, Roger.
prev parent reply other threads:[~2025-01-09 16:16 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-07 9:31 [PATCH 0/2] xen: error handling and FreeBSD compatibility fixes Roger Pau Monne
2025-01-07 9:31 ` [PATCH 1/2] xen/console: fix error handling in xen_console_device_create() Roger Pau Monne
2025-01-09 10:13 ` Anthony PERARD
2025-01-09 16:06 ` Roger Pau Monné
2025-01-07 9:31 ` [PATCH 2/2] xen: do not use '%ms' scanf specifier Roger Pau Monne
2025-01-09 10:59 ` Anthony PERARD
2025-01-09 11:25 ` David Woodhouse
2025-01-09 16:55 ` Roger Pau Monné
2025-01-10 8:08 ` David Woodhouse
2025-01-10 8:16 ` Philippe Mathieu-Daudé
2025-01-10 8:21 ` David Woodhouse
2025-01-09 16:15 ` Roger Pau Monné [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z3_2IhGZvpF-5IiX@macbook.local \
--to=roger.pau@citrix.com \
--cc=anthony@xenproject.org \
--cc=edgar.iglesias@gmail.com \
--cc=marcandre.lureau@redhat.com \
--cc=paul@xen.org \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=sstabellini@kernel.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.