From owner-svn-src-head@FreeBSD.ORG Tue Apr 28 19:20:13 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C1ECF106564A; Tue, 28 Apr 2009 19:20:13 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B02E08FC1D; Tue, 28 Apr 2009 19:20:13 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n3SJKDm0057703; Tue, 28 Apr 2009 19:20:13 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n3SJKDMZ057702; Tue, 28 Apr 2009 19:20:13 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <200904281920.n3SJKDMZ057702@svn.freebsd.org> From: Olivier Houchard Date: Tue, 28 Apr 2009 19:20:13 +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: r191633 - head/lib/libc/arm/string X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Apr 2009 19:20:14 -0000 Author: cognet Date: Tue Apr 28 19:20:13 2009 New Revision: 191633 URL: http://svn.freebsd.org/changeset/base/191633 Log: Change the test at the beginning of strncmp(), from being if (len - 1) < 0 to if (len == 0). The length is supposed to be unsigned, so len - 1 < 0 won't happen except if len == 0 anyway, and it would return 0 when it shouldn't, if len was > INT_MAX. Spotted out by: Channa Modified: head/lib/libc/arm/string/strncmp.S Modified: head/lib/libc/arm/string/strncmp.S ============================================================================== --- head/lib/libc/arm/string/strncmp.S Tue Apr 28 17:41:52 2009 (r191632) +++ head/lib/libc/arm/string/strncmp.S Tue Apr 28 19:20:13 2009 (r191633) @@ -33,10 +33,10 @@ __FBSDID("$FreeBSD$"); ENTRY(strncmp) -/* if ((len - 1) < 0) return 0 */ - subs r2, r2, #1 - movmi r0, #0 - movmi pc, lr +/* if (len == 0) return 0 */ + cmp r2, #0 + moveq r0, #0 + RETeq /* ip == last src address to compare */ add ip, r0, r2