Message ID | 1429051503-31287-7-git-send-email-rshearma@brocade.com |
---|---|
State | Deferred, archived |
Delegated to: | David Miller |
Headers | show |
diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c index e99f88556d6b..414aacb84089 100644 --- a/net/mpls/af_mpls.c +++ b/net/mpls/af_mpls.c @@ -664,6 +664,15 @@ int nla_get_labels(const struct nlattr *nla, if ((dec.bos != bos) || dec.ttl || dec.tc) return -EINVAL; + switch (dec.label) { + case LABEL_IMPLICIT_NULL: + /* RFC3032: This is a label that an LSR may + * assign and distribute, but which never + * actually appears in the encapsulation. + */ + return -EINVAL; + } + label[i] = dec.label; } *labels = nla_labels;
The reserved implicit-NULL label isn't allowed to appear in the label stack for packets, so make it an error for the control plane to specify it as an outgoing label. Suggested-by: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: Robert Shearman <rshearma@brocade.com> --- net/mpls/af_mpls.c | 9 +++++++++ 1 file changed, 9 insertions(+)