From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1CnQqx-0005hL-Jk for mharc-grub-devel@gnu.org; Sat, 08 Jan 2005 19:22:43 -0500 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1CnQqu-0005fb-Kx for grub-devel@gnu.org; Sat, 08 Jan 2005 19:22:40 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1CnQqr-0005dx-50 for grub-devel@gnu.org; Sat, 08 Jan 2005 19:22:37 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1CnQqq-0005dG-Lg for grub-devel@gnu.org; Sat, 08 Jan 2005 19:22:36 -0500 Received: from [207.217.121.252] (helo=pop-a065d14.pas.sa.earthlink.net) by monty-python.gnu.org with esmtp (Exim 4.34) id 1CnQct-0005tt-Uw for grub-devel@gnu.org; Sat, 08 Jan 2005 19:08:12 -0500 Received: from user-0vvde4j.cable.mindspring.com ([63.246.184.147] helo=miracle) by pop-a065d14.pas.sa.earthlink.net with esmtp (Exim 3.33 #1) id 1CnQcq-0003sU-00 for grub-devel@gnu.org; Sat, 08 Jan 2005 16:08:08 -0800 Received: from hollis by miracle with local (Exim 3.36 #1 (Debian)) id 1CnQJg-0001sA-00 for ; Sat, 08 Jan 2005 17:48:20 -0600 Date: Sat, 8 Jan 2005 17:48:20 -0600 To: grub-devel@gnu.org Message-ID: <20050108234820.GA7198@miracle> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.6+20040907i From: Hollis Blanchard Subject: strndup broken X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Jan 2005 00:22:41 -0000 A while back I made the unpleasent discovery that grub_strndup was broken. This patch fixes it, but the author has been having trouble sending it out. -Hollis 2005-01-08 Ian Abel * kern/misc.c (grub_strndup): Don't call grub_strlen. Null-terminate the new string if possible. Index: kern/misc.c =================================================================== RCS file: /cvsroot/grub/grub2/kern/misc.c,v retrieving revision 1.15 diff -u -p -r1.15 misc.c --- kern/misc.c 14 Sep 2004 08:56:51 -0000 1.15 +++ kern/misc.c 8 Jan 2005 23:47:55 -0000 @@ -341,16 +341,21 @@ grub_strndup (const char *s, grub_size_t { grub_size_t len = 0; char *p = (char *) s; - + while (*(p++) && len < n) len++; - len = grub_strlen (s) + 1; + if (*p) + len++; + p = (char *) grub_malloc (len); if (! p) return 0; - return grub_memcpy (p, s, len); + if (n < len) + p[n] = '\0'; + + return grub_memcpy (p, s, n); } void *