summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Graf <tgraf@suug.ch>2013-03-14 13:41:12 (GMT)
committerThomas Graf <tgraf@suug.ch>2013-03-14 13:41:12 (GMT)
commitf0f33c394b97341e824b5fdf62707fcd25ef84cc (patch)
tree4835e4ce1164749f205ab5e6738c17629b90ce95
parentf72bfc72205366f2f877fef379c79c9a2a1cce03 (diff)
downloadlibnl-f0f33c394b97341e824b5fdf62707fcd25ef84cc.zip
libnl-f0f33c394b97341e824b5fdf62707fcd25ef84cc.tar.gz
libnl-f0f33c394b97341e824b5fdf62707fcd25ef84cc.tar.bz2
addr: Reset unused portion of binary address in nl_addr_set_binary_addr()
memset() the binary address before overwriting it with new data to avoid leaving around old portions of the address. Signed-off-by: Thomas Graf <tgraf@suug.ch>
-rw-r--r--lib/addr.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/addr.c b/lib/addr.c
index 9089be8..e75ef70 100644
--- a/lib/addr.c
+++ b/lib/addr.c
@@ -766,7 +766,10 @@ int nl_addr_set_binary_addr(struct nl_addr *addr, void *buf, size_t len)
return -NLE_RANGE;
addr->a_len = len;
- memcpy(addr->a_addr, buf, len);
+ memset(addr->a_addr, 0, addr->a_maxsize);
+
+ if (len)
+ memcpy(addr->a_addr, buf, len);
return 0;
}