From: Arran Cudbard-Bell Date: Mon, 20 Jul 2015 15:39:05 +0000 (-0400) Subject: Use temporary value buffer in fr_pton4/6 X-Git-Tag: release_3_0_10~315 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=84b61bd89da0ba45fdec7f84d368c8c7b38e366b;p=thirdparty%2Ffreeradius-server.git Use temporary value buffer in fr_pton4/6 --- diff --git a/src/lib/misc.c b/src/lib/misc.c index 69b3807012f..9ee3b801358 100644 --- a/src/lib/misc.c +++ b/src/lib/misc.c @@ -226,6 +226,7 @@ int fr_pton4(fr_ipaddr_t *out, char const *value, ssize_t inlen, bool resolve, b } memcpy(buffer, value, inlen); buffer[inlen] = '\0'; + value = buffer; } p = strchr(value, '/'); @@ -329,6 +330,7 @@ int fr_pton6(fr_ipaddr_t *out, char const *value, ssize_t inlen, bool resolve, b } memcpy(buffer, value, inlen); buffer[inlen] = '\0'; + value = buffer; } p = strchr(value, '/'); @@ -429,7 +431,10 @@ int fr_pton(fr_ipaddr_t *out, char const *value, ssize_t inlen, bool resolve) * Use A record in preference to AAAA record. */ if ((value[i] < '0') || (value[i] > '9')) { - if (!resolve) return -1; + if (!resolve) { + fr_strerror_printf("Not IPv4/6 address, and asked not to resolve"); + return -1; + } return fr_pton4(out, value, inlen, true, true); } break;