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.
|
* 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
|
* lib/lib_strcasecmp.c and lib/lib_strncasecmp.c. Use of post-incremented
|
||||||
argument to macro caused strcasecmp() and strncasecmp() to fail.
|
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.
|
* 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
|
* lib/lib_strcasecmp.c and lib/lib_strncasecmp.c. Use of post-incremented
|
||||||
argument to macro caused strcasecmp() and strncasecmp() to fail.
|
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>
|
pascal-0.1.3 2009-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* lib/lib_strncmp.c
|
* 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>
|
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -52,10 +52,10 @@
|
|||||||
#ifndef CONFIG_ARCH_STRNCMP
|
#ifndef CONFIG_ARCH_STRNCMP
|
||||||
int strncmp(const char *cs, const char *ct, size_t nb)
|
int strncmp(const char *cs, const char *ct, size_t nb)
|
||||||
{
|
{
|
||||||
register signed char result = 0;
|
int result = 0;
|
||||||
for (; nb > 0; nb--)
|
for (; nb > 0; nb--)
|
||||||
{
|
{
|
||||||
if ((result = *cs - *ct++) != 0 || !*cs++)
|
if ((result = (int)*cs - (int)*ct++) != 0 || !*cs++)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,9 @@ char *strstr(const char *str, const char *substr)
|
|||||||
|
|
||||||
/* Special case the empty substring */
|
/* Special case the empty substring */
|
||||||
|
|
||||||
ch = *substr++;
|
len = strlen(substr);
|
||||||
|
ch = *substr++;
|
||||||
|
|
||||||
if (!ch)
|
if (!ch)
|
||||||
{
|
{
|
||||||
/* We'll say that an empty substring matches at the beginning of
|
/* 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 */
|
/* Search for the substring */
|
||||||
|
|
||||||
candidate = str;
|
candidate = str;
|
||||||
len = strlen(substr);
|
|
||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
/* strchr() will return a pointer to the next occurrence of the
|
/* strchr() will return a pointer to the next occurrence of the
|
||||||
|
Loading…
Reference in New Issue
Block a user