File tree Expand file tree Collapse file tree 1 file changed +4
-3
lines changed Expand file tree Collapse file tree 1 file changed +4
-3
lines changed Original file line number Diff line number Diff line change @@ -110,21 +110,21 @@ static void nft_socket_eval(const struct nft_expr *expr,
110
110
* dest = READ_ONCE (sk -> sk_mark );
111
111
} else {
112
112
regs -> verdict .code = NFT_BREAK ;
113
- return ;
113
+ goto out_put_sk ;
114
114
}
115
115
break ;
116
116
case NFT_SOCKET_WILDCARD :
117
117
if (!sk_fullsock (sk )) {
118
118
regs -> verdict .code = NFT_BREAK ;
119
- return ;
119
+ goto out_put_sk ;
120
120
}
121
121
nft_socket_wildcard (pkt , regs , sk , dest );
122
122
break ;
123
123
#ifdef CONFIG_SOCK_CGROUP_DATA
124
124
case NFT_SOCKET_CGROUPV2 :
125
125
if (!nft_sock_get_eval_cgroupv2 (dest , sk , pkt , priv -> level )) {
126
126
regs -> verdict .code = NFT_BREAK ;
127
- return ;
127
+ goto out_put_sk ;
128
128
}
129
129
break ;
130
130
#endif
@@ -133,6 +133,7 @@ static void nft_socket_eval(const struct nft_expr *expr,
133
133
regs -> verdict .code = NFT_BREAK ;
134
134
}
135
135
136
+ out_put_sk :
136
137
if (sk != skb -> sk )
137
138
sock_gen_put (sk );
138
139
}
You can’t perform that action at this time.
0 commit comments