virNetDevGetEthtoolGFeatures: Avoid use of VIR_ALLOC_VAR

In this case we need a 'struct ethtool_gfeatures' followed by two
'struct ethtool_get_features_block' so there's no risk of overflow.

Use g_malloc0 and sizeof() to allocate the memory instead of
VIR_ALLOC_VAR.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Peter Krempa 2021-02-03 13:33:24 +01:00
parent 729ac13938
commit 52ca0a6229

View File

@ -3300,9 +3300,8 @@ virNetDevGetEthtoolGFeatures(const char *ifname,
{
g_autofree struct ethtool_gfeatures *g_cmd = NULL;
if (VIR_ALLOC_VAR(g_cmd,
struct ethtool_get_features_block, GFEATURES_SIZE) < 0)
return -1;
g_cmd = g_malloc0(sizeof(struct ethtool_gfeatures) +
sizeof(struct ethtool_get_features_block) * GFEATURES_SIZE);
g_cmd->cmd = ETHTOOL_GFEATURES;
g_cmd->size = GFEATURES_SIZE;