From a62bfdb8e0a1dffa7539fe813a96593c9c407686 Mon Sep 17 00:00:00 2001 From: Thomas Graf Date: Thu, 24 Mar 2011 17:00:38 +0100 Subject: Check if all mandatory attributes are present in rtnl_tc_msg_build() TCA_ATTR_IFINDEX | TCA_ATTR_PARENT | TCA_ATTR_KIND --- lib/route/tc.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/route/tc.c b/lib/route/tc.c index 56aa410..09ae044 100644 --- a/lib/route/tc.c +++ b/lib/route/tc.c @@ -189,7 +189,11 @@ int rtnl_tc_msg_build(struct rtnl_tc *tc, int type, int flags, .tcm_handle = tc->tc_handle, .tcm_parent = tc->tc_parent, }; - int err = -NLE_MSGSIZE; + int req, err = -NLE_MSGSIZE; + + req = (TCA_ATTR_IFINDEX | TCA_ATTR_PARENT | TCA_ATTR_KIND); + if ((tc->ce_mask & req) != req) + return -NLE_MISSING_ATTR; msg = nlmsg_alloc_simple(type, flags); if (!msg) -- cgit v1.2.1