cls: check data before memcpy() it

[thaller@redhat.com: I modified the condition "if (data && len)"
 in the original patch to just check "len > 0".
 Note that all call sites of meta_alloc() make sure to pass a
 valid data pointer with a non-zero length (anything else would
 be a bug). But indeed, calling memcpy with invalid src pointer
 is undefined behavior, even if len is zero.]

Signed-off-by: Thomas Haller <thaller@redhat.com>
This commit is contained in:
Nicolas PLANEL 2014-08-26 11:43:49 -04:00 committed by Thomas Haller
parent 06140c3ec9
commit 592d665fbc

View file

@ -51,7 +51,8 @@ static struct rtnl_meta_value *meta_alloc(uint8_t type, uint16_t id,
value->mv_shift = shift;
value->mv_len = len;
memcpy(value + 1, data, len);
if (len)
memcpy(value + 1, data, len);
return value;
}