PR/50195: Henning Petersen: Incorrect check in getnameinfo_link.
This commit is contained in:
parent
bc619545b7
commit
33eb4d867d
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: getnameinfo.c,v 1.56 2015/05/15 14:26:02 joerg Exp $ */
|
||||
/* $NetBSD: getnameinfo.c,v 1.57 2015/09/03 15:01:19 christos Exp $ */
|
||||
/* $KAME: getnameinfo.c,v 1.45 2000/09/25 22:43:56 itojun Exp $ */
|
||||
|
||||
/*
|
||||
@ -47,7 +47,7 @@
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
__RCSID("$NetBSD: getnameinfo.c,v 1.56 2015/05/15 14:26:02 joerg Exp $");
|
||||
__RCSID("$NetBSD: getnameinfo.c,v 1.57 2015/09/03 15:01:19 christos Exp $");
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#ifndef RUMP_ACTION
|
||||
@ -536,11 +536,7 @@ getnameinfo_link(const struct sockaddr *sa, socklen_t salen,
|
||||
|
||||
if (sdl->sdl_nlen == 0 && sdl->sdl_alen == 0 && sdl->sdl_slen == 0) {
|
||||
n = snprintf(host, hostlen, "link#%u", sdl->sdl_index);
|
||||
if (n < 0 || (socklen_t) n > hostlen) {
|
||||
*host = '\0';
|
||||
return EAI_MEMORY;
|
||||
}
|
||||
return 0;
|
||||
goto out;
|
||||
}
|
||||
|
||||
switch (sdl->sdl_type) {
|
||||
@ -553,11 +549,7 @@ getnameinfo_link(const struct sockaddr *sa, socklen_t salen,
|
||||
else
|
||||
n = snprintf(host, hostlen, "%u.%u",
|
||||
CLLADDR(sdl)[1], CLLADDR(sdl)[0]);
|
||||
if (n < 0 || (socklen_t) n >= hostlen) {
|
||||
*host = '\0';
|
||||
return EAI_MEMORY;
|
||||
} else
|
||||
return 0;
|
||||
goto out;
|
||||
#endif
|
||||
case IFT_IEEE1394:
|
||||
if (sdl->sdl_alen < sizeof(iha->iha_uid))
|
||||
@ -591,6 +583,12 @@ getnameinfo_link(const struct sockaddr *sa, socklen_t salen,
|
||||
return hexname((const uint8_t *)CLLADDR(sdl),
|
||||
(size_t)sdl->sdl_alen, host, hostlen);
|
||||
}
|
||||
out:
|
||||
if (n < 0 || (socklen_t) n >= hostlen) {
|
||||
*host = '\0';
|
||||
return EAI_MEMORY;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
|
Loading…
x
Reference in New Issue
Block a user