Messages in this thread | | | Date | Sat, 16 Jan 2010 12:12:57 +0100 | Subject | Re: [PATCH 4/7] lib: Introduce strnstr() | From | Alex Riesen <> |
| |
On Thu, Jan 14, 2010 at 03:53, Li Zefan <lizf@cn.fujitsu.com> wrote: > @@ -667,7 +667,7 @@ EXPORT_SYMBOL(memscan); > */ > char *strstr(const char *s1, const char *s2) > { > - int l1, l2; > + size_t l1, l2; >
This chunk is not related, is it?
> @@ -684,6 +684,31 @@ char *strstr(const char *s1, const char *s2) > EXPORT_SYMBOL(strstr); > #endif > > +#ifndef __HAVE_ARCH_STRNSTR > +/** > + * strnstr - Find the first substring in a length-limited string > + * @s1: The string to be searched > + * @s2: The string to search for > + * @len: the maximum number of characters to search > + */ > +char *strnstr(const char *s1, const char *s2, size_t len) > +{ > + size_t l1 = len, l2;
Are you sure you want to search _past_ the NUL-terminator of s1?
> + l2 = strlen(s2); > + if (!l2) > + return (char *)s1; > + while (l1 >= l2) { > + l1--; > + if (!memcmp(s1, s2, l2)) > + return (char *)s1; > + s1++; > + } > + return NULL; > +} -- 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/
| |