On Wed, Dec 2, 2020 at 7:27 PM Stefan Hajnoczi <[email protected]> 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 <[email protected]> > Signed-off-by: Stefan Hajnoczi <[email protected]> > --- > contrib/vhost-user-input/main.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/contrib/vhost-user-input/main.c > b/contrib/vhost-user-input/main.c > index 6020c6f33a..1d79c61200 100644 > --- a/contrib/vhost-user-input/main.c > +++ b/contrib/vhost-user-input/main.c > @@ -212,7 +212,11 @@ static int vi_get_config(VuDev *dev, uint8_t *config, > uint32_t len) > { > VuInput *vi = container_of(dev, VuInput, dev.parent); > > - g_return_val_if_fail(len <= sizeof(*vi->sel_config), -1); > + if (len > sizeof(*vi->sel_config)) { > + g_critical("%s: len %u is larger than %zu", > + __func__, len, sizeof(*vi->sel_config)); > + return -1; > g_critical() already has __FILE__ __LINE__ and G_STRFUNC. otherwise looks good: Reviewed-by: Marc-André Lureau <[email protected]> > + } > > if (vi->sel_config) { > memcpy(config, vi->sel_config, len); > -- > 2.28.0 > > -- Marc-André Lureau
