Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Sat, 21 Sep 2002 13:25:44 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Sat, 21 Sep 2002 13:25:44 -0400 Received: from mail.gmx.de ([213.165.64.20]:1455 "HELO mail.gmx.net") by vger.kernel.org with SMTP id ; Sat, 21 Sep 2002 13:25:43 -0400 Date: Sat, 21 Sep 2002 20:30:33 +0300 From: Dan Aloni To: Nicolas Pitre Cc: lkml Subject: Re: [PATCH] fix to strchr() in lib/string.c Message-ID: <20020921173033.GB19943@callisto.yi.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4i Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1127 Lines: 42 On Sat, Sep 21, 2002 at 12:25:59PM -0400, Nicolas Pitre wrote: > > The return value of strchr("foo",0) should be the start address of > "foo" + 3, not NULL. Correct me if I'm wrong, but no fix is needed. strchr("foo", 0) doesn't return NULL, for the simple fact that the loop will stop when reaching '\0' before the 'if' that returns NULL, and then s will be returned. If it wasn't like this, add_stats() (in net/atm/proc.c) would have Oopsed on us long ago. > --- linux/lib/string.c Thu Aug 1 17:16:34 2002 > +++ linux/lib/string.c Sat Sep 21 12:21:54 2002 > @@ -190,10 +190,11 @@ > */ > char * strchr(const char * s, int c) > { > - for(; *s != (char) c; ++s) > - if (*s == '\0') > - return NULL; > - return (char *) s; > + do { > + if (*s == (char) c) > + return (char *) s; > + } while (*s++); > + return NULL; > } > #endif > > -- Dan Aloni da-x@gmx.net - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/