lib: check for integer-overflow in nlmsg_reserve()
[platform/upstream/libnl3.git] / lib / msg.c
index 6478507..b30b90a 100644 (file)
--- a/lib/msg.c
+++ b/lib/msg.c
@@ -415,6 +415,9 @@ void *nlmsg_reserve(struct nl_msg *n, size_t len, int pad)
        size_t nlmsg_len = n->nm_nlh->nlmsg_len;
        size_t tlen;
 
+       if (len > n->nm_size)
+               return NULL;
+
        tlen = pad ? ((len + (pad - 1)) & ~(pad - 1)) : len;
 
        if ((tlen + nlmsg_len) > n->nm_size)