git: 2d9d97e66e9e - main - ifconfig: improve error checking for carp peer6
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 18 May 2023 16:01:22 UTC
The branch main has been updated by kp:
URL: https://cgit.FreeBSD.org/src/commit/?id=2d9d97e66e9e29de128c21cb676b9661df20dede
commit 2d9d97e66e9e29de128c21cb676b9661df20dede
Author: Kristof Provost <kp@FreeBSD.org>
AuthorDate: 2023-05-17 19:39:42 +0000
Commit: Kristof Provost <kp@FreeBSD.org>
CommitDate: 2023-05-18 15:47:03 +0000
ifconfig: improve error checking for carp peer6
getaddrinfo() returns 0 if it succeeded, but it's not guaranteed to
return 1 on error. Check for success rather than for one specific error.
Without this fix commands such as `ifconfig bnxt1 inet6 add vhid 1 peer6
2001:db8::1/64` would segfault ifconfig.
Sponsored by: Rubicon Communications, LLC ("Netgate")
---
sbin/ifconfig/carp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sbin/ifconfig/carp.c b/sbin/ifconfig/carp.c
index aab5f2985328..2a2d8ce407ab 100644
--- a/sbin/ifconfig/carp.c
+++ b/sbin/ifconfig/carp.c
@@ -237,7 +237,7 @@ setcarp_peer6(const char *val, int d, int s, const struct afswtch *afp)
hints.ai_family = AF_INET6;
hints.ai_flags = AI_NUMERICHOST;
- if (getaddrinfo(val, NULL, &hints, &res) == 1)
+ if (getaddrinfo(val, NULL, &hints, &res) != 0)
errx(1, "Invalid IPv6 address %s", val);
memcpy(&carp_addr6, &((struct sockaddr_in6 *)res->ai_addr)->sin6_addr,