Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.1
ipsec-tools
fix_leak_in_nattraversal.c.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File fix_leak_in_nattraversal.c.diff of Package ipsec-tools
References: bnc#504186 Acked-by: Jiri Bohac <jbohac@suse.cz> Patch-mainline: 0.7.2 =================================================================== RCS file: /ftp/cvs/cvsroot/src/crypto/dist/ipsec-tools/src/racoon/nattraversal.c,v retrieving revision 1.6 retrieving revision 1.6.6.1 diff -u -p -r1.6 -r1.6.6.1 --- a/src/racoon/nattraversal.c 2006/09/09 16:22:09 1.6 +++ b/src/racoon/nattraversal.c 2009/04/20 13:27:12 1.6.6.1 @@ -1,4 +1,4 @@ -/* $NetBSD: nattraversal.c,v 1.6 2006/09/09 16:22:09 manu Exp $ */ +/* $NetBSD: nattraversal.c,v 1.6.6.1 2009/04/20 13:27:12 tteras Exp $ */ /* * Copyright (C) 2004 SuSE Linux AG, Nuernberg, Germany. @@ -319,6 +319,15 @@ natt_handle_vendorid (struct ph1handle * iph1->natt_flags |= NAT_ANNOUNCED; } +static void +natt_keepalive_delete (struct natt_ka_addrs *ka) +{ + TAILQ_REMOVE (&ka_tree, ka, chain); + racoon_free (ka->src); + racoon_free (ka->dst); + racoon_free (ka); +} + /* NAT keepalive functions */ static void natt_keepalive_send (void *param) @@ -333,8 +342,7 @@ natt_keepalive_send (void *param) s = getsockmyaddr(ka->src); if (s == -1) { - TAILQ_REMOVE (&ka_tree, ka, chain); - racoon_free (ka); + natt_keepalive_delete(ka); continue; } plog (LLV_DEBUG, LOCATION, NULL, "KA: %s\n", @@ -435,8 +443,7 @@ natt_keepalive_remove (struct sockaddr * plog (LLV_DEBUG, LOCATION, NULL, "KA removing this one...\n"); - TAILQ_REMOVE (&ka_tree, ka, chain); - racoon_free (ka); + natt_keepalive_delete (ka); /* Should we break here? Every pair of addresses should be inserted only once, but who knows :-) Lets traverse the whole list... */
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor