summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ppp
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>2000-06-19 21:43:48 +0000
committerbrian <brian@FreeBSD.org>2000-06-19 21:43:48 +0000
commitd765e4453fe669c5448762433b83a890f2d74743 (patch)
tree704dd71fff8f20de9251752d9023ddb87df6cb62 /usr.sbin/ppp
parent293ce673c84d3c70bfd4f0552df5770369c1f401 (diff)
downloadFreeBSD-src-d765e4453fe669c5448762433b83a890f2d74743.zip
FreeBSD-src-d765e4453fe669c5448762433b83a890f2d74743.tar.gz
Don't mis-match interface names in iface_Create()
Submitted by: Adrian Penisoara <ady@freebsd.ady.ro>
Diffstat (limited to 'usr.sbin/ppp')
-rw-r--r--usr.sbin/ppp/iface.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/usr.sbin/ppp/iface.c b/usr.sbin/ppp/iface.c
index 2ddd5b0..8d95ced 100644
--- a/usr.sbin/ppp/iface.c
+++ b/usr.sbin/ppp/iface.c
@@ -95,7 +95,7 @@ struct iface *
iface_Create(const char *name)
{
int mib[6], s;
- size_t needed;
+ size_t needed, namelen;
char *buf, *ptr, *end;
struct if_msghdr *ifm;
struct ifa_msghdr *ifam;
@@ -140,13 +140,14 @@ iface_Create(const char *name)
ptr = buf;
end = buf + needed;
iface = NULL;
+ namelen = strlen(name);
while (ptr < end && iface == NULL) {
ifm = (struct if_msghdr *)ptr; /* On if_msghdr */
if (ifm->ifm_type != RTM_IFINFO)
break;
dl = (struct sockaddr_dl *)(ifm + 1); /* Single _dl at end */
- if (!strncmp(name, dl->sdl_data, dl->sdl_nlen)) {
+ if (dl->sdl_nlen == namelen && !strncmp(name, dl->sdl_data, namelen)) {
iface = (struct iface *)malloc(sizeof *iface);
if (iface == NULL) {
fprintf(stderr, "iface_Create: malloc: %s\n", strerror(errno));
OpenPOWER on IntegriCloud