Thread (5 messages) 5 messages, 2 authors, 2018-09-27

Re: [PATCH] netlink: add policy attribute range validation

From: Johannes Berg <johannes@sipsolutions.net>
Date: 2018-09-27 02:39:36
Also in: linux-wireless

Another thing to note:

Given the union of validation_data pointer and min/max, we'll always get
into this:
+	/* validate range */
+	if (pt->min || pt->max) {
if validation_data is set, but of course end up taking the default case,
where nothing further happens:
+		default:
+			/* no further validation */
+			validate = false;
+			break;
+		}
+
+		if (validate && (value < pt->min || value > pt->max)) {
+			NL_SET_ERR_MSG_ATTR(extack, nla,
+					    "integer out of range");
+			return -ERANGE;
+		}
+	}
+
 	return 0;
I'm not *entirely* happy with this, but I haven't been able to come up
with a way that doesn't do this, doesn't duplicate the nla types list
(NLA_{U,S}{8,16,32,64}) in the code, and also loads the attribute value
only if validation is needed.

johannes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help