Page MenuHomeFreeBSD

D39282.id.diff
No OneTemporary

D39282.id.diff

diff --git a/sbin/ifconfig/ifvlan.c b/sbin/ifconfig/ifvlan.c
--- a/sbin/ifconfig/ifvlan.c
+++ b/sbin/ifconfig/ifvlan.c
@@ -121,7 +121,7 @@
{
char ifname[IFNAMSIZ];
char *cp;
- int vid;
+ unsigned int vid;
strlcpy(ifname, name, IFNAMSIZ);
if ((cp = strrchr(ifname, '.')) == NULL)
@@ -134,9 +134,12 @@
errx(1, "invalid vlan tag");
vid = *cp++ - '0';
- while ((*cp >= '0') && (*cp <= '9'))
+ while ((*cp >= '0') && (*cp <= '9')) {
vid = (vid * 10) + (*cp++ - '0');
- if ((*cp != '\0') || (vid & ~0xFFF))
+ if (vid >= 0xFFF)
+ errx(1, "invalid vlan tag");
+ }
+ if (*cp != '\0')
errx(1, "invalid vlan tag");
/*

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 3, 6:22 AM (1 h, 44 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30747023
Default Alt Text
D39282.id.diff (639 B)

Event Timeline