Message ID | 1434006867-19701-1-git-send-email-eric.auger@linaro.org |
---|---|
State | New |
Headers | show |
On 2015/6/11 15:14, Eric Auger wrote: > g_malloc0_n() is introduced since glib-2.24 while QEMU currently > requires glib-2.22. This may cause a link error on some distributions. > > Signed-off-by: Eric Auger <eric.auger@linaro.org> > --- > hw/vfio/platform.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c > index 35266a8..c0acc8b 100644 > --- a/hw/vfio/platform.c > +++ b/hw/vfio/platform.c > @@ -346,8 +346,7 @@ static int vfio_populate_device(VFIODevice *vbasedev) > return ret; > } > > - vdev->regions = g_malloc0_n(vbasedev->num_regions, > - sizeof(VFIORegion *)); > + vdev->regions = g_malloc0(vbasedev->num_regions * sizeof(VFIORegion *)); > Why not use g_new0() which returned pointer is cast to the given type? Regards, -Gonglei > for (i = 0; i < vbasedev->num_regions; i++) { > struct vfio_region_info reg_info = { .argsz = sizeof(reg_info) }; >
Hi Gonglei, On 06/11/2015 09:55 AM, Gonglei wrote: > On 2015/6/11 15:14, Eric Auger wrote: >> g_malloc0_n() is introduced since glib-2.24 while QEMU currently >> requires glib-2.22. This may cause a link error on some distributions. >> >> Signed-off-by: Eric Auger <eric.auger@linaro.org> >> --- >> hw/vfio/platform.c | 3 +-- >> 1 file changed, 1 insertion(+), 2 deletions(-) >> >> diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c >> index 35266a8..c0acc8b 100644 >> --- a/hw/vfio/platform.c >> +++ b/hw/vfio/platform.c >> @@ -346,8 +346,7 @@ static int vfio_populate_device(VFIODevice *vbasedev) >> return ret; >> } >> >> - vdev->regions = g_malloc0_n(vbasedev->num_regions, >> - sizeof(VFIORegion *)); >> + vdev->regions = g_malloc0(vbasedev->num_regions * sizeof(VFIORegion *)); >> > > Why not use g_new0() which returned pointer is cast to the given type? Looks relevant indeed. g_malloc0 is used in similar situations in rest of the VFIO code so I posted a new version and let Alex choose among both. Thanks Eric > > Regards, > -Gonglei >> for (i = 0; i < vbasedev->num_regions; i++) { >> struct vfio_region_info reg_info = { .argsz = sizeof(reg_info) }; >> > >
Eric Auger <eric.auger@linaro.org> writes: > g_malloc0_n() is introduced since glib-2.24 while QEMU currently > requires glib-2.22. This may cause a link error on some distributions. > > Signed-off-by: Eric Auger <eric.auger@linaro.org> > --- > hw/vfio/platform.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c > index 35266a8..c0acc8b 100644 > --- a/hw/vfio/platform.c > +++ b/hw/vfio/platform.c > @@ -346,8 +346,7 @@ static int vfio_populate_device(VFIODevice *vbasedev) > return ret; > } > > - vdev->regions = g_malloc0_n(vbasedev->num_regions, > - sizeof(VFIORegion *)); > + vdev->regions = g_malloc0(vbasedev->num_regions * sizeof(VFIORegion *)); > > for (i = 0; i < vbasedev->num_regions; i++) { > struct vfio_region_info reg_info = { .argsz = sizeof(reg_info) }; Please use g_new0(VFIORegion, vbasedev->num_regions) for extra compile-time checking and integer overflow protection. See commits 58889fe net: Use g_new() & friends where that makes obvious sense 3c55fe2 scsi: Use g_new() & friends where that makes obvious sense ab3ad07 x86: Use g_new() & friends where that makes obvious sense 3ba235a block: Use g_new0() for a bit of extra type checking e1cf558 util: Use g_new() & friends where that makes obvious sense 02c4f26 block: Use g_new() & friends to avoid multiplying sizes 5839e53 block: Use g_new() & friends where that makes obvious sense
diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c index 35266a8..c0acc8b 100644 --- a/hw/vfio/platform.c +++ b/hw/vfio/platform.c @@ -346,8 +346,7 @@ static int vfio_populate_device(VFIODevice *vbasedev) return ret; } - vdev->regions = g_malloc0_n(vbasedev->num_regions, - sizeof(VFIORegion *)); + vdev->regions = g_malloc0(vbasedev->num_regions * sizeof(VFIORegion *)); for (i = 0; i < vbasedev->num_regions; i++) { struct vfio_region_info reg_info = { .argsz = sizeof(reg_info) };
g_malloc0_n() is introduced since glib-2.24 while QEMU currently requires glib-2.22. This may cause a link error on some distributions. Signed-off-by: Eric Auger <eric.auger@linaro.org> --- hw/vfio/platform.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)