From e9a8f3c6446af1b5834e66c76fa3b2e7a526ae84 Mon Sep 17 00:00:00 2001 From: Daniel Veillard Date: Tue, 10 Aug 2010 15:00:15 +0200 Subject: [PATCH] Extend virSocketParseAddr() to allow a NULL result pointer That way it can be used to verify a numeric address without storing the details * src/util/network.c: change virSocketParseAddr to allow a null @addr parameter --- src/util/network.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/util/network.c b/src/util/network.c index 6e24792ff1..b17d419630 100644 --- a/src/util/network.c +++ b/src/util/network.c @@ -56,7 +56,7 @@ static int getIPv6Addr(virSocketAddrPtr addr, virIPv6AddrPtr tab) { /** * virSocketParseAddr: * @val: a numeric network address IPv4 or IPv6 - * @addr: where to store the return value. + * @addr: where to store the return value, optional. * @hint: optional hint to pass down to getaddrinfo * * Mostly a wrapper for getaddrinfo() extracting the address storage @@ -70,7 +70,7 @@ virSocketParseAddr(const char *val, virSocketAddrPtr addr, int hint) { struct addrinfo hints; struct addrinfo *res = NULL; - if ((val == NULL) || (addr == NULL)) + if (val == NULL) return(-1); memset(&hints, 0, sizeof(hints)); @@ -80,7 +80,8 @@ virSocketParseAddr(const char *val, virSocketAddrPtr addr, int hint) { } len = res->ai_addrlen; - memcpy(&addr->stor, res->ai_addr, len); + if (addr != NULL) + memcpy(&addr->stor, res->ai_addr, len); freeaddrinfo(res); return(len);