diff options
| author | Wolfgang Denk <wd@pollux.(none)> | 2005-09-25 16:15:17 +0200 | 
|---|---|---|
| committer | Wolfgang Denk <wd@pollux.(none)> | 2005-09-25 16:15:17 +0200 | 
| commit | 389db1f113cbc0f81f2a7311fa4114c749c81595 (patch) | |
| tree | d99eb49d2b08633b5cd2b65f58ba7cd020453470 /lib_generic/string.c | |
| parent | 6ed6ce62bec68d491efde5a7b36a4366b586baa8 (diff) | |
| download | olio-uboot-2014.01-389db1f113cbc0f81f2a7311fa4114c749c81595.tar.xz olio-uboot-2014.01-389db1f113cbc0f81f2a7311fa4114c749c81595.zip | |
Fix strswab() to reliably find end of string
Patch by Andrew Dyer, 08 Feb 2005
Diffstat (limited to 'lib_generic/string.c')
| -rw-r--r-- | lib_generic/string.c | 11 | 
1 files changed, 6 insertions, 5 deletions
| diff --git a/lib_generic/string.c b/lib_generic/string.c index 5ba8d7cb5..dea4d69a9 100644 --- a/lib_generic/string.c +++ b/lib_generic/string.c @@ -374,17 +374,18 @@ char * strsep(char **s, const char *ct)   */  char *strswab(const char *s)  { -	char *p; +	char *p, *q;  	if ((NULL == s) || ('\0' == *s)) {  		return (NULL);  	} -	for (p = ((char *)s + 1); '\0' != *p; p += 2) { +	for (p=(char *)s, q=p+1; (*p != '\0') && (*p != '\0'); p+=2, q+=2) {  		char  tmp; -		tmp = *(p-1); -		*(p-1) = *p; -		*p = tmp; + +		tmp = *p; +		*p  = *q; +		*q  = tmp;  	}  	return (char *) s; |