From e5143952f0dde2d5694f5ca70140d2b1781ff516 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 19 Apr 2011 12:43:00 +0200 Subject: [PATCH] pool: Proper handling of address family when adding addresses. --- src/libhydra/plugins/attr_sql/pool.c | 8 ++++++-- 1 file 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;