summaryrefslogtreecommitdiffstats
path: root/usr.sbin/bgpd/carp.c
diff options
context:
space:
mode:
authortobias <tobias@openbsd.org>2008-09-10 15:00:01 +0000
committertobias <tobias@openbsd.org>2008-09-10 15:00:01 +0000
commit8155cb2244cbcccac4314e624e035cc2030b4635 (patch)
tree59f1e0497fe457cdd3dbed74d4b9fe756967be5b /usr.sbin/bgpd/carp.c
parentProper format string modifiers and missing includes to get correct prototypes (diff)
downloadwireguard-openbsd-8155cb2244cbcccac4314e624e035cc2030b4635.tar.xz
wireguard-openbsd-8155cb2244cbcccac4314e624e035cc2030b4635.zip
Properly free allocated memory if carp_demote_get encounters an error.
ok henning@
Diffstat (limited to 'usr.sbin/bgpd/carp.c')
-rw-r--r--usr.sbin/bgpd/carp.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/usr.sbin/bgpd/carp.c b/usr.sbin/bgpd/carp.c
index 69d3082b341..655a30df127 100644
--- a/usr.sbin/bgpd/carp.c
+++ b/usr.sbin/bgpd/carp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: carp.c,v 1.5 2007/04/23 14:52:28 claudio Exp $ */
+/* $OpenBSD: carp.c,v 1.6 2008/09/10 15:00:01 tobias Exp $ */
/*
* Copyright (c) 2006 Henning Brauer <henning@openbsd.org>
@@ -72,8 +72,11 @@ carp_demote_init(char *group, int force)
}
/* only demote if this group already is demoted */
- if ((level = carp_demote_get(group)) == -1)
+ if ((level = carp_demote_get(group)) == -1) {
+ free(c->group);
+ free(c);
return (-1);
+ }
if (level > 0 || force)
c->do_demote = 1;