link: allocate correct number of bytes in ethtool_set_features()
sfeatures is a "struct ethtool_sfeatures". Use sizeof() on the correct
data type.
Since "struct ethtool_gstrings" is larger than "struct ethtool_sfeatures",
this had no serious consequences.
Fixes: 50725d10e3
This commit is contained in:
parent
274f0dbeb5
commit
3301f9eb97
|
@ -320,7 +320,7 @@ int ethtool_set_features(int *fd, const char *ifname, int *features) {
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return log_warning_errno(r, "link_config: could not get ethtool features for %s", ifname);
|
return log_warning_errno(r, "link_config: could not get ethtool features for %s", ifname);
|
||||||
|
|
||||||
sfeatures = alloca0(sizeof(struct ethtool_gstrings) + DIV_ROUND_UP(strings->len, 32U) * sizeof(sfeatures->features[0]));
|
sfeatures = alloca0(sizeof(struct ethtool_sfeatures) + DIV_ROUND_UP(strings->len, 32U) * sizeof(sfeatures->features[0]));
|
||||||
sfeatures->cmd = ETHTOOL_SFEATURES;
|
sfeatures->cmd = ETHTOOL_SFEATURES;
|
||||||
sfeatures->size = DIV_ROUND_UP(strings->len, 32U);
|
sfeatures->size = DIV_ROUND_UP(strings->len, 32U);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue