err = dst_cache_init(&ub->rcast.dst_cache, GFP_ATOMIC);
        if (err)
-               goto err;
+               goto free;
 
        /**
         * The bcast media address port is used for all peers and the ip
        else
                err = tipc_udp_rcast_add(b, &remote);
        if (err)
-               goto err;
+               goto free;
 
        return 0;
-err:
+
+free:
        dst_cache_destroy(&ub->rcast.dst_cache);
-       if (ub->ubsock)
-               udp_tunnel_sock_release(ub->ubsock);
+       udp_tunnel_sock_release(ub->ubsock);
+err:
        kfree(ub);
        return err;
 }
        }
 
        dst_cache_destroy(&ub->rcast.dst_cache);
-       if (ub->ubsock)
-               udp_tunnel_sock_release(ub->ubsock);
+       udp_tunnel_sock_release(ub->ubsock);
        synchronize_net();
        kfree(ub);
 }
                pr_err("UDP bearer instance not found\n");
                return;
        }
-       if (ub->ubsock)
-               sock_set_flag(ub->ubsock->sk, SOCK_DEAD);
+       sock_set_flag(ub->ubsock->sk, SOCK_DEAD);
        RCU_INIT_POINTER(ub->bearer, NULL);
 
        /* sock_release need to be done outside of rtnl lock */