diff options
Diffstat (limited to 'sys/compat/linux/linux_socket.c')
-rw-r--r-- | sys/compat/linux/linux_socket.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/compat/linux/linux_socket.c b/sys/compat/linux/linux_socket.c index 7462ca3..431c5b9 100644 --- a/sys/compat/linux/linux_socket.c +++ b/sys/compat/linux/linux_socket.c @@ -166,11 +166,11 @@ linux_getsockaddr(struct sockaddr **sap, const struct osockaddr *osa, int salen) namelen = strnlen(name + 1, salen - hdrlen - 1) + 1; } else namelen = strnlen(name, salen - hdrlen); - if (hdrlen + namelen > sizeof(struct sockaddr_un)) { + salen = hdrlen + namelen; + if (salen > sizeof(struct sockaddr_un)) { error = ENAMETOOLONG; goto out; } - salen = sizeof(struct sockaddr_un); } sa = (struct sockaddr *)kosa; |