Commit 65dbd7c2778f1921ef1ee2a73e47a2a126fed30f
Committed by
David S. Miller
1 parent
18becbc547
Exists in
master
and in
4 other branches
af_iucv: Free iucv path/socket in path_pending callback
Free iucv path after iucv_path_sever() calls in iucv_callback_connreq() (path_pending() iucv callback). If iucv_path_accept() fails, free path and free/kill newly created socket. Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Showing 1 changed file with 5 additions and 0 deletions Side-by-side Diff
net/iucv/af_iucv.c
... | ... | @@ -1042,12 +1042,14 @@ |
1042 | 1042 | ASCEBC(user_data, sizeof(user_data)); |
1043 | 1043 | if (sk->sk_state != IUCV_LISTEN) { |
1044 | 1044 | err = iucv_path_sever(path, user_data); |
1045 | + iucv_path_free(path); | |
1045 | 1046 | goto fail; |
1046 | 1047 | } |
1047 | 1048 | |
1048 | 1049 | /* Check for backlog size */ |
1049 | 1050 | if (sk_acceptq_is_full(sk)) { |
1050 | 1051 | err = iucv_path_sever(path, user_data); |
1052 | + iucv_path_free(path); | |
1051 | 1053 | goto fail; |
1052 | 1054 | } |
1053 | 1055 | |
... | ... | @@ -1055,6 +1057,7 @@ |
1055 | 1057 | nsk = iucv_sock_alloc(NULL, SOCK_STREAM, GFP_ATOMIC); |
1056 | 1058 | if (!nsk) { |
1057 | 1059 | err = iucv_path_sever(path, user_data); |
1060 | + iucv_path_free(path); | |
1058 | 1061 | goto fail; |
1059 | 1062 | } |
1060 | 1063 | |
... | ... | @@ -1078,6 +1081,8 @@ |
1078 | 1081 | err = iucv_path_accept(path, &af_iucv_handler, nuser_data, nsk); |
1079 | 1082 | if (err) { |
1080 | 1083 | err = iucv_path_sever(path, user_data); |
1084 | + iucv_path_free(path); | |
1085 | + iucv_sock_kill(nsk); | |
1081 | 1086 | goto fail; |
1082 | 1087 | } |
1083 | 1088 |