mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
string: fix type use in strstr()
Using plain int for string lengths, while okay for all practical purposes, is undesirable in a generic library function. Take the opportunity and also move the function from being in the middle of mem*() ones to the set of str*() ones, convert its loop from while() to for(), and correct style. Signed-off-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Juergen Gross <jgross@suse.com> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
This commit is contained in:
1 parent
c07186ca66
commit
3bf54c9dbf
1 file changed
+21
-24
+21
-24
@@ -290,6 +290,27 @@ char * strsep(char **s, const char *ct)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef __HAVE_ARCH_STRSTR
|
||||
/**
|
||||
* strstr - Find the first substring in a %NUL terminated string
|
||||
* @s1: The string to be searched
|
||||
* @s2: The string to search for
|
||||
*/
|
||||
char *(strstr)(const char *s1, const char *s2)
|
||||
{
|
||||
size_t l1, l2 = strlen(s2);
|
||||
|
||||
if (!l2)
|
||||
return (char *)s1;
|
||||
|
||||
for (l1 = strlen(s1); l1 >= l2; --l1, ++s1)
|
||||
if (!memcmp(s1, s2, l2))
|
||||
return (char *)s1;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef __HAVE_ARCH_MEMSET
|
||||
/**
|
||||
* memset - Fill a region of memory with the given value
|
||||
@@ -380,30 +401,6 @@ int (memcmp)(const void *cs, const void *ct, size_t count)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef __HAVE_ARCH_STRSTR
|
||||
/**
|
||||
* strstr - Find the first substring in a %NUL terminated string
|
||||
* @s1: The string to be searched
|
||||
* @s2: The string to search for
|
||||
*/
|
||||
char *(strstr)(const char *s1, const char *s2)
|
||||
{
|
||||
int l1, l2;
|
||||
|
||||
l2 = strlen(s2);
|
||||
if (!l2)
|
||||
return (char *) s1;
|
||||
l1 = strlen(s1);
|
||||
while (l1 >= l2) {
|
||||
l1--;
|
||||
if (!memcmp(s1,s2,l2))
|
||||
return (char *) s1;
|
||||
s1++;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef __HAVE_ARCH_MEMCHR
|
||||
/**
|
||||
* memchr - Find a character in an area of memory.
|
||||
|
||||