diff options
Diffstat (limited to 'net/netlabel/netlabel_kapi.c')
-rw-r--r-- | net/netlabel/netlabel_kapi.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/net/netlabel/netlabel_kapi.c b/net/netlabel/netlabel_kapi.c index a845cd4cf21e..28cddc85b700 100644 --- a/net/netlabel/netlabel_kapi.c +++ b/net/netlabel/netlabel_kapi.c | |||
@@ -1065,10 +1065,12 @@ int netlbl_skbuff_getattr(const struct sk_buff *skb, | |||
1065 | u16 family, | 1065 | u16 family, |
1066 | struct netlbl_lsm_secattr *secattr) | 1066 | struct netlbl_lsm_secattr *secattr) |
1067 | { | 1067 | { |
1068 | unsigned char *ptr; | ||
1069 | |||
1068 | switch (family) { | 1070 | switch (family) { |
1069 | case AF_INET: | 1071 | case AF_INET: |
1070 | if (CIPSO_V4_OPTEXIST(skb) && | 1072 | ptr = cipso_v4_optptr(skb); |
1071 | cipso_v4_skbuff_getattr(skb, secattr) == 0) | 1073 | if (ptr && cipso_v4_getattr(ptr, secattr) == 0) |
1072 | return 0; | 1074 | return 0; |
1073 | break; | 1075 | break; |
1074 | #if IS_ENABLED(CONFIG_IPV6) | 1076 | #if IS_ENABLED(CONFIG_IPV6) |
@@ -1094,7 +1096,7 @@ int netlbl_skbuff_getattr(const struct sk_buff *skb, | |||
1094 | */ | 1096 | */ |
1095 | void netlbl_skbuff_err(struct sk_buff *skb, int error, int gateway) | 1097 | void netlbl_skbuff_err(struct sk_buff *skb, int error, int gateway) |
1096 | { | 1098 | { |
1097 | if (CIPSO_V4_OPTEXIST(skb)) | 1099 | if (cipso_v4_optptr(skb)) |
1098 | cipso_v4_error(skb, error, gateway); | 1100 | cipso_v4_error(skb, error, gateway); |
1099 | } | 1101 | } |
1100 | 1102 | ||
@@ -1126,11 +1128,14 @@ void netlbl_cache_invalidate(void) | |||
1126 | int netlbl_cache_add(const struct sk_buff *skb, | 1128 | int netlbl_cache_add(const struct sk_buff *skb, |
1127 | const struct netlbl_lsm_secattr *secattr) | 1129 | const struct netlbl_lsm_secattr *secattr) |
1128 | { | 1130 | { |
1131 | unsigned char *ptr; | ||
1132 | |||
1129 | if ((secattr->flags & NETLBL_SECATTR_CACHE) == 0) | 1133 | if ((secattr->flags & NETLBL_SECATTR_CACHE) == 0) |
1130 | return -ENOMSG; | 1134 | return -ENOMSG; |
1131 | 1135 | ||
1132 | if (CIPSO_V4_OPTEXIST(skb)) | 1136 | ptr = cipso_v4_optptr(skb); |
1133 | return cipso_v4_cache_add(skb, secattr); | 1137 | if (ptr) |
1138 | return cipso_v4_cache_add(ptr, secattr); | ||
1134 | 1139 | ||
1135 | return -ENOMSG; | 1140 | return -ENOMSG; |
1136 | } | 1141 | } |