strstr fails because length off by 1
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2022 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
534fa87409
commit
8ec0fc92ed
@ -846,3 +846,5 @@
|
||||
* net/recvfrom.c: Fix errors in return value from non-blocking socket read.
|
||||
* lib/lib_strcasecmp.c and lib/lib_strncasecmp.c. Use of post-incremented
|
||||
argument to macro caused strcasecmp() and strncasecmp() to fail.
|
||||
* lib/lib_strstr.c: Length of substring off by one causes false alarm
|
||||
sub-string matches.
|
||||
|
@ -1507,6 +1507,8 @@ nuttx-0.4.11 2009-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
* net/recvfrom.c: Fix errors in return value from non-blocking socket read.
|
||||
* lib/lib_strcasecmp.c and lib/lib_strncasecmp.c. Use of post-incremented
|
||||
argument to macro caused strcasecmp() and strncasecmp() to fail.
|
||||
* lib/lib_strstr.c: Length of substring off by one causes false alarm
|
||||
sub-string matches.
|
||||
|
||||
pascal-0.1.3 2009-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/****************************************************************************
|
||||
* lib/lib_strncmp.c
|
||||
*
|
||||
* Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
|
||||
* Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -52,10 +52,10 @@
|
||||
#ifndef CONFIG_ARCH_STRNCMP
|
||||
int strncmp(const char *cs, const char *ct, size_t nb)
|
||||
{
|
||||
register signed char result = 0;
|
||||
int result = 0;
|
||||
for (; nb > 0; nb--)
|
||||
{
|
||||
if ((result = *cs - *ct++) != 0 || !*cs++)
|
||||
if ((result = (int)*cs - (int)*ct++) != 0 || !*cs++)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
@ -53,7 +53,9 @@ char *strstr(const char *str, const char *substr)
|
||||
|
||||
/* Special case the empty substring */
|
||||
|
||||
ch = *substr++;
|
||||
len = strlen(substr);
|
||||
ch = *substr++;
|
||||
|
||||
if (!ch)
|
||||
{
|
||||
/* We'll say that an empty substring matches at the beginning of
|
||||
@ -66,8 +68,6 @@ char *strstr(const char *str, const char *substr)
|
||||
/* Search for the substring */
|
||||
|
||||
candidate = str;
|
||||
len = strlen(substr);
|
||||
|
||||
for (;;)
|
||||
{
|
||||
/* strchr() will return a pointer to the next occurrence of the
|
||||
|
Loading…
Reference in New Issue
Block a user