Re: [PATCH v2 1/4] contrib/vhost-user-blk: avoid g_return_val_if() input validation
On 12/2/20 4:26 PM, Stefan Hajnoczi 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 > Signed-off-by: Stefan Hajnoczi > --- > contrib/vhost-user-blk/vhost-user-blk.c | 6 +- > 1 file changed, 5 insertions(+), 1 deletion(-) Reviewed-by: Philippe Mathieu-Daudé
Re: [PATCH v2 1/4] contrib/vhost-user-blk: avoid g_return_val_if() input validation
On Wed, Dec 2, 2020 at 10:27 AM Stefan Hajnoczi 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 > Signed-off-by: Stefan Hajnoczi Reviewed-by: Raphael Norwitz > --- > contrib/vhost-user-blk/vhost-user-blk.c | 6 +- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/contrib/vhost-user-blk/vhost-user-blk.c > b/contrib/vhost-user-blk/vhost-user-blk.c > index dc981bf945..60e3c9ed37 100644 > --- a/contrib/vhost-user-blk/vhost-user-blk.c > +++ b/contrib/vhost-user-blk/vhost-user-blk.c > @@ -404,7 +404,11 @@ vub_get_config(VuDev *vu_dev, uint8_t *config, uint32_t > len) > VugDev *gdev; > VubDev *vdev_blk; > > -g_return_val_if_fail(len <= sizeof(struct virtio_blk_config), -1); > +if (len > sizeof(struct virtio_blk_config)) { > +fprintf(stderr, "Invalid get_config len %u, expected <= %zu\n", > +len, sizeof(struct virtio_blk_config)); > +return -1; > +} > > gdev = container_of(vu_dev, VugDev, parent); > vdev_blk = container_of(gdev, VubDev, parent); > -- > 2.28.0 >
Re: [PATCH v2 1/4] contrib/vhost-user-blk: avoid g_return_val_if() input validation
On Wed, Dec 2, 2020 at 7:26 PM Stefan Hajnoczi 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 > Signed-off-by: Stefan Hajnoczi > Reviewed-by: Marc-André Lureau --- > contrib/vhost-user-blk/vhost-user-blk.c | 6 +- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/contrib/vhost-user-blk/vhost-user-blk.c > b/contrib/vhost-user-blk/vhost-user-blk.c > index dc981bf945..60e3c9ed37 100644 > --- a/contrib/vhost-user-blk/vhost-user-blk.c > +++ b/contrib/vhost-user-blk/vhost-user-blk.c > @@ -404,7 +404,11 @@ vub_get_config(VuDev *vu_dev, uint8_t *config, > uint32_t len) > VugDev *gdev; > VubDev *vdev_blk; > > -g_return_val_if_fail(len <= sizeof(struct virtio_blk_config), -1); > +if (len > sizeof(struct virtio_blk_config)) { > +fprintf(stderr, "Invalid get_config len %u, expected <= %zu\n", > +len, sizeof(struct virtio_blk_config)); > +return -1; > +} > > gdev = container_of(vu_dev, VugDev, parent); > vdev_blk = container_of(gdev, VubDev, parent); > -- > 2.28.0 > > -- Marc-André Lureau
[PATCH v2 1/4] contrib/vhost-user-blk: avoid g_return_val_if() input validation
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 Signed-off-by: Stefan Hajnoczi --- contrib/vhost-user-blk/vhost-user-blk.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/contrib/vhost-user-blk/vhost-user-blk.c b/contrib/vhost-user-blk/vhost-user-blk.c index dc981bf945..60e3c9ed37 100644 --- a/contrib/vhost-user-blk/vhost-user-blk.c +++ b/contrib/vhost-user-blk/vhost-user-blk.c @@ -404,7 +404,11 @@ vub_get_config(VuDev *vu_dev, uint8_t *config, uint32_t len) VugDev *gdev; VubDev *vdev_blk; -g_return_val_if_fail(len <= sizeof(struct virtio_blk_config), -1); +if (len > sizeof(struct virtio_blk_config)) { +fprintf(stderr, "Invalid get_config len %u, expected <= %zu\n", +len, sizeof(struct virtio_blk_config)); +return -1; +} gdev = container_of(vu_dev, VugDev, parent); vdev_blk = container_of(gdev, VubDev, parent); -- 2.28.0