[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 2/4] contrib/vhost-user-gpu: avoid g_return_val_if() input
From: |
Stefan Hajnoczi |
Subject: |
Re: [PATCH v2 2/4] contrib/vhost-user-gpu: avoid g_return_val_if() input validation |
Date: |
Thu, 3 Dec 2020 11:37:42 +0000 |
On Thu, Dec 03, 2020 at 02:26:08PM +0400, Marc-André Lureau wrote:
> On Thu, Dec 3, 2020 at 1:52 PM Stefan Hajnoczi <stefanha@redhat.com> wrote:
>
> > On Wed, Dec 02, 2020 at 07:50:51PM +0400, Marc-André Lureau wrote:
> > > On Wed, Dec 2, 2020 at 7:27 PM Stefan Hajnoczi <stefanha@redhat.com>
> > wrote:
> > >
> > > > Do not validate input with g_return_val_if(). This API is intended for
> > > > checking programming errors and is compiled out with
> > -DG_DISABLE_CHECKS.
> > > >
> > > > Use an explicit if statement for input validation so it cannot
> > > > accidentally be compiled out.
> > > >
> > > > Suggested-by: Markus Armbruster <armbru@redhat.com>
> > > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> > > > ---
> > > > contrib/vhost-user-gpu/vhost-user-gpu.c | 6 +++++-
> > > > 1 file changed, 5 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/contrib/vhost-user-gpu/vhost-user-gpu.c
> > > > b/contrib/vhost-user-gpu/vhost-user-gpu.c
> > > > index a019d0a9ac..534bad24d1 100644
> > > > --- a/contrib/vhost-user-gpu/vhost-user-gpu.c
> > > > +++ b/contrib/vhost-user-gpu/vhost-user-gpu.c
> > > > @@ -1044,7 +1044,11 @@ vg_get_config(VuDev *dev, uint8_t *config,
> > uint32_t
> > > > len)
> > > > {
> > > > VuGpu *g = container_of(dev, VuGpu, dev.parent);
> > > >
> > > > - g_return_val_if_fail(len <= sizeof(struct virtio_gpu_config), -1);
> > > > + if (len > sizeof(struct virtio_gpu_config)) {
> > > > + g_critical("%s: len %u is larger than %zu",
> > > > + __func__, len, sizeof(struct virtio_gpu_config));
> > > >
> > >
> > > g_critical() already has __FILE__ __LINE__ and G_STRFUNC.
> >
> > I did this for consistency with the logging in this source file. The
> > other g_critical() calls in the file also print __func__.
> >
> >
> >
> I see, nevermind then. I gave rb anyway
Thanks! I checked now and don't see the function name printed by
g_critical() even though G_STRFUNC is captured in the header file:
** (process:693258): CRITICAL **: 11:30:18.210: test
Maybe only custom log handlers can display the function name?
So it seems the explicit __func__ approach is okay-ish :).
Stefan
signature.asc
Description: PGP signature
[PATCH v2 3/4] contrib/vhost-user-input: avoid g_return_val_if() input validation, Stefan Hajnoczi, 2020/12/02
[PATCH v2 4/4] block/export: avoid g_return_val_if() input validation, Stefan Hajnoczi, 2020/12/02
Re: [PATCH v2 0/4] vhost-user: avoid g_return_val_if() in get/set_config(), Stefano Garzarella, 2020/12/03