mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
Unroll inlined strnlen(9) and make it easier to read. No functional change.
This commit is contained in:
parent
a93672b3fe
commit
c15cdbf2f3
1 changed files with 6 additions and 10 deletions
|
|
@ -99,12 +99,11 @@ do_sa_get(struct sockaddr **sap, const struct osockaddr *osa, int *osalen,
|
|||
int error=0, bdom;
|
||||
struct sockaddr *sa;
|
||||
struct osockaddr *kosa;
|
||||
int alloclen;
|
||||
#ifdef INET6
|
||||
int oldv6size;
|
||||
struct sockaddr_in6 *sin6;
|
||||
#endif
|
||||
int namelen;
|
||||
int alloclen, hdrlen, namelen;
|
||||
|
||||
if (*osalen < 2 || *osalen > UCHAR_MAX || !osa)
|
||||
return (EINVAL);
|
||||
|
|
@ -167,14 +166,11 @@ do_sa_get(struct sockaddr **sap, const struct osockaddr *osa, int *osalen,
|
|||
}
|
||||
}
|
||||
|
||||
if ((bdom == AF_LOCAL) && (*osalen > sizeof(struct sockaddr_un))) {
|
||||
for (namelen = 0;
|
||||
namelen < *osalen - offsetof(struct sockaddr_un, sun_path);
|
||||
namelen++)
|
||||
if (!((struct sockaddr_un *)kosa)->sun_path[namelen])
|
||||
break;
|
||||
if (namelen + offsetof(struct sockaddr_un, sun_path) >
|
||||
sizeof(struct sockaddr_un)) {
|
||||
if (bdom == AF_LOCAL && *osalen > sizeof(struct sockaddr_un)) {
|
||||
hdrlen = offsetof(struct sockaddr_un, sun_path);
|
||||
namelen = strnlen(((struct sockaddr_un *)kosa)->sun_path,
|
||||
*osalen - hdrlen);
|
||||
if (hdrlen + namelen > sizeof(struct sockaddr_un)) {
|
||||
error = EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue