File libnl3-fix-elevation-of-privilege-vulnerability.patch of Package libnl3.25397

diff -Nurp libnl-3.2.23-orig/lib/attr.c libnl-3.2.23/lib/attr.c
--- libnl-3.2.23-orig/lib/attr.c	2013-04-28 13:20:03.000000000 +0200
+++ libnl-3.2.23/lib/attr.c	2022-08-05 09:29:49.679642589 +0200
@@ -462,6 +462,9 @@ struct nlattr *nla_reserve(struct nl_msg
 	struct nlattr *nla;
 	int tlen;
 	
+	if (attrlen < 0)
+        	return NULL;
+
 	tlen = NLMSG_ALIGN(msg->nm_nlh->nlmsg_len) + nla_total_size(attrlen);
 
 	if (tlen > msg->nm_size)
@@ -503,8 +506,12 @@ int nla_put(struct nl_msg *msg, int attr
 	struct nlattr *nla;
 
 	nla = nla_reserve(msg, attrtype, datalen);
-	if (!nla)
+	if (!nla) {
+		if (datalen < 0)
+			return -NLE_INVAL;
+
 		return -NLE_NOMEM;
+	}
 
 	if (datalen > 0) {
 		memcpy(nla_data(nla), data, datalen);
openSUSE Build Service is sponsored by