Use inet_pton to parse ext-communities with an IPv4 address.
authorflorian <florian@openbsd.org>
Wed, 21 Aug 2024 09:17:05 +0000 (09:17 +0000)
committerflorian <florian@openbsd.org>
Wed, 21 Aug 2024 09:17:05 +0000 (09:17 +0000)
No need for inet_aton's flexibility.
OK claudio

usr.sbin/bgpctl/parser.c
usr.sbin/bgpd/parse.y

index 7654051..ee86917 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: parser.c,v 1.135 2024/08/14 19:10:51 claudio Exp $ */
+/*     $OpenBSD: parser.c,v 1.136 2024/08/21 09:17:05 florian Exp $ */
 
 /*
  * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -1325,7 +1325,7 @@ parseextvalue(int type, char *s, uint32_t *v, uint32_t *flag)
                *v = uval | (uvalh << 16);
                break;
        case EXT_COMMUNITY_TRANS_IPV4:
-               if (inet_aton(s, &ip) == 0)
+               if (inet_pton(AF_INET, s, &ip) == 0)
                        errx(1, "Bad ext-community %s not parseable", s);
                *v = ntohl(ip.s_addr);
                break;
index 1621c8a..d8841db 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: parse.y,v 1.465 2024/08/14 19:09:51 claudio Exp $ */
+/*     $OpenBSD: parse.y,v 1.466 2024/08/21 09:17:05 florian Exp $ */
 
 /*
  * Copyright (c) 2002, 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -4503,7 +4503,7 @@ parseextvalue(int type, char *s, uint32_t *v, uint32_t *flag)
                *v = uval | (uvalh << 16);
                break;
        case EXT_COMMUNITY_TRANS_IPV4:
-               if (inet_aton(s, &ip) == 0) {
+               if (inet_pton(AF_INET, s, &ip) == 0) {
                        yyerror("Bad ext-community %s not parseable", s);
                        return (-1);
                }