mirror of
https://gitee.com/openharmony/third_party_libnl
synced 2024-12-03 00:16:46 +00:00
attr: nla_get_u64() should return 0 if the attribute does not fully contain 64 bit
Manually "inline" nla_memcpy() to nla_get_u64() and change the behavior to return always zero (0) if the attribute does not contain at least sizeof(uint64_t) bytes. Considering endianness, reading a truncated integer does not seem to be useful and should result in a defined behavior instead. Acked-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: Thomas Haller <thaller@redhat.com>
This commit is contained in:
parent
940e5d5446
commit
558df52e6e
@ -650,7 +650,8 @@ uint64_t nla_get_u64(struct nlattr *nla)
|
||||
{
|
||||
uint64_t tmp = 0;
|
||||
|
||||
nla_memcpy(&tmp, nla, sizeof(tmp));
|
||||
if (nla && nla_len(nla) >= sizeof(tmp))
|
||||
memcpy(&tmp, nla_data(nla), sizeof(tmp));
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user