From 4eec5f0f7d4f93c11db235a239faf94c3b3d43ae Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Wed, 22 Jan 2014 21:46:07 +0100 Subject: [PATCH] gtp: destroy sockets if there have been initialized Fixes a crash if you remove the gtp module and no configuration was enabled. --- gtp.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gtp.c b/gtp.c index 8ce6034..e959611 100644 --- a/gtp.c +++ b/gtp.c @@ -750,10 +750,14 @@ out: static void gtp_destroy_bind_sock(struct gtp_instance *gti) { - kernel_sock_shutdown(gti->sock1u, SHUT_RDWR); - sk_release_kernel(gti->sock1u->sk); - kernel_sock_shutdown(gti->sock0, SHUT_RDWR); - sk_release_kernel(gti->sock0->sk); + if (gti->sock1u) { + kernel_sock_shutdown(gti->sock1u, SHUT_RDWR); + sk_release_kernel(gti->sock1u->sk); + } + if (gti->sock0) { + kernel_sock_shutdown(gti->sock0, SHUT_RDWR); + sk_release_kernel(gti->sock0->sk); + } } static struct net_device *gtp_find_dev(int ifindex)