lkml.org 
[lkml]   [2002]   [Sep]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] fix to strchr() in lib/string.c
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/

\
 
 \ /
  Last update: 2005-03-22 13:29    [W:0.045 / U:0.208 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site