aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2011-04-19 12:43:00 +0200
committerTobias Brunner <tobias@strongswan.org>2011-04-19 13:48:50 +0200
commite5143952f0dde2d5694f5ca70140d2b1781ff516 (patch)
treefa7317194fb086560048395f98af172ce45c2489 /src
parenta5543f99e4cd1df423ef73386f989b33efa2815f (diff)
downloadstrongswan-e5143952f0dde2d5694f5ca70140d2b1781ff516.tar.bz2
strongswan-e5143952f0dde2d5694f5ca70140d2b1781ff516.tar.xz
pool: Proper handling of address family when adding addresses.
Diffstat (limited to 'src')
-rw-r--r--src/libhydra/plugins/attr_sql/pool.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libhydra/plugins/attr_sql/pool.c b/src/libhydra/plugins/attr_sql/pool.c
index 157986d20..0ef41a7bd 100644
--- a/src/libhydra/plugins/attr_sql/pool.c
+++ b/src/libhydra/plugins/attr_sql/pool.c
@@ -407,7 +407,8 @@ static bool add_address(u_int pool_id, char *address_str, int *family)
fprintf(stderr, "invalid address '%s'.\n", address_str);
return FALSE;
}
- if (family && *family && *family != address->get_family(address))
+ if (family && *family != AF_UNSPEC &&
+ *family != address->get_family(address))
{
fprintf(stderr, "invalid address family '%s'.\n", address_str);
return FALSE;
@@ -423,7 +424,10 @@ static bool add_address(u_int pool_id, char *address_str, int *family)
fprintf(stderr, "inserting address '%s' failed.\n", address_str);
return FALSE;
}
- *family = address->get_family(address);
+ if (family)
+ {
+ *family = address->get_family(address);
+ }
address->destroy(address);
return TRUE;