From owner-svn-src-all@FreeBSD.ORG Thu Oct 6 19:59:15 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 25A49106564A; Thu, 6 Oct 2011 19:59:15 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 160228FC0C; Thu, 6 Oct 2011 19:59:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p96JxEE8075379; Thu, 6 Oct 2011 19:59:14 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p96JxE7j075377; Thu, 6 Oct 2011 19:59:14 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201110061959.p96JxE7j075377@svn.freebsd.org> From: Jung-uk Kim Date: Thu, 6 Oct 2011 19:59:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226068 - head/sys/compat/linux X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Oct 2011 19:59:15 -0000 Author: jkim Date: Thu Oct 6 19:59:14 2011 New Revision: 226068 URL: http://svn.freebsd.org/changeset/base/226068 Log: Unroll inlined strnlen(9) and make it easier to read. No functional change. Modified: head/sys/compat/linux/linux_socket.c Modified: head/sys/compat/linux/linux_socket.c ============================================================================== --- head/sys/compat/linux/linux_socket.c Thu Oct 6 19:15:51 2011 (r226067) +++ head/sys/compat/linux/linux_socket.c Thu Oct 6 19:59:14 2011 (r226068) @@ -99,12 +99,11 @@ do_sa_get(struct sockaddr **sap, const s 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 s } } - 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; }