OpenSBI Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] lib: sbi: Fix bug in strncmp function
@ 2021-07-26 16:41 Dong Du
  2021-07-27 16:15 ` Andreas Schwab
  0 siblings, 1 reply; 4+ messages in thread
From: Dong Du @ 2021-07-26 16:41 UTC (permalink / raw)
  To: opensbi

From: Dong Du <dd_nirvana@sjtu.edu.cn>

strncmp should return 0 when the count is 0.
Fix the issue in sbi_strncmp.

Signed-off-by: Dong Du <ddnirvana1@gmail.com>
---
 lib/sbi/sbi_string.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/sbi/sbi_string.c b/lib/sbi/sbi_string.c
index 7805ba4..f93ed5f 100644
--- a/lib/sbi/sbi_string.c
+++ b/lib/sbi/sbi_string.c
@@ -29,6 +29,9 @@ int sbi_strcmp(const char *a, const char *b)
 
 int sbi_strncmp(const char *a, const char *b, size_t count)
 {
+	if (!count)
+		return 0;
+
 	/* search first diff or end of string */
 	for (; count > 0 && *a == *b && *a != '\0'; a++, b++, count--)
 		;
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH] lib: sbi: Fix bug in strncmp function
@ 2021-07-27  6:08 Dong Du
  0 siblings, 0 replies; 4+ messages in thread
From: Dong Du @ 2021-07-27  6:08 UTC (permalink / raw)
  To: opensbi

From: Dong Du <dd_nirvana@sjtu.edu.cn>

strncmp should return 0 when the count is 0.
Fix the issue in sbi_strncmp.

Signed-off-by: Dong Du <ddnirvana1@gmail.com>
---
 lib/sbi/sbi_string.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/sbi/sbi_string.c b/lib/sbi/sbi_string.c
index 7805ba4..f93ed5f 100644
--- a/lib/sbi/sbi_string.c
+++ b/lib/sbi/sbi_string.c
@@ -29,6 +29,9 @@ int sbi_strcmp(const char *a, const char *b)
 
 int sbi_strncmp(const char *a, const char *b, size_t count)
 {
+	if (!count)
+		return 0;
+
 	/* search first diff or end of string */
 	for (; count > 0 && *a == *b && *a != '\0'; a++, b++, count--)
 		;
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH] lib: sbi: Fix bug in strncmp function
  2021-07-26 16:41 [PATCH] lib: sbi: Fix bug in strncmp function Dong Du
@ 2021-07-27 16:15 ` Andreas Schwab
  2021-07-28 16:16   ` 杜东
  0 siblings, 1 reply; 4+ messages in thread
From: Andreas Schwab @ 2021-07-27 16:15 UTC (permalink / raw)
  To: opensbi

On Jul 27 2021, Dong Du wrote:

> From: Dong Du <dd_nirvana@sjtu.edu.cn>
>
> strncmp should return 0 when the count is 0.
> Fix the issue in sbi_strncmp.
>
> Signed-off-by: Dong Du <ddnirvana1@gmail.com>
> ---
>  lib/sbi/sbi_string.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/lib/sbi/sbi_string.c b/lib/sbi/sbi_string.c
> index 7805ba4..f93ed5f 100644
> --- a/lib/sbi/sbi_string.c
> +++ b/lib/sbi/sbi_string.c
> @@ -29,6 +29,9 @@ int sbi_strcmp(const char *a, const char *b)
>  
>  int sbi_strncmp(const char *a, const char *b, size_t count)
>  {
> +	if (!count)
> +		return 0;
> +
>  	/* search first diff or end of string */
>  	for (; count > 0 && *a == *b && *a != '\0'; a++, b++, count--)
>  		;

You need to put the test after the loop.  Once count becomes zero, there
are no more characters to compare.

Andreas.

-- 
Andreas Schwab, schwab at linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH] lib: sbi: Fix bug in strncmp function
  2021-07-27 16:15 ` Andreas Schwab
@ 2021-07-28 16:16   ` 杜东
  0 siblings, 0 replies; 4+ messages in thread
From: 杜东 @ 2021-07-28 16:16 UTC (permalink / raw)
  To: opensbi

Hi Andreas,
   You are right.
   The updated patch has been sent.

Regards,
Dong

----- Original Message -----
From: "Andreas Schwab" <schwab@linux-m68k.org>
To: "Dong Du" <ddnirvana1@gmail.com>
Cc: "anup patel" <anup.patel@wdc.com>, opensbi at lists.infradead.org, "Dd nirvana" <dd_nirvana@sjtu.edu.cn>
Sent: Wednesday, July 28, 2021 12:15:09 AM
Subject: Re: [PATCH] lib: sbi: Fix bug in strncmp function

On Jul 27 2021, Dong Du wrote:

> From: Dong Du <dd_nirvana@sjtu.edu.cn>
>
> strncmp should return 0 when the count is 0.
> Fix the issue in sbi_strncmp.
>
> Signed-off-by: Dong Du <ddnirvana1@gmail.com>
> ---
>  lib/sbi/sbi_string.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/lib/sbi/sbi_string.c b/lib/sbi/sbi_string.c
> index 7805ba4..f93ed5f 100644
> --- a/lib/sbi/sbi_string.c
> +++ b/lib/sbi/sbi_string.c
> @@ -29,6 +29,9 @@ int sbi_strcmp(const char *a, const char *b)
>  
>  int sbi_strncmp(const char *a, const char *b, size_t count)
>  {
> +	if (!count)
> +		return 0;
> +
>  	/* search first diff or end of string */
>  	for (; count > 0 && *a == *b && *a != '\0'; a++, b++, count--)
>  		;

You need to put the test after the loop.  Once count becomes zero, there
are no more characters to compare.

Andreas.

-- 
Andreas Schwab, schwab at linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-07-28 16:16 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-07-26 16:41 [PATCH] lib: sbi: Fix bug in strncmp function Dong Du
2021-07-27 16:15 ` Andreas Schwab
2021-07-28 16:16   ` 杜东
  -- strict thread matches above, loose matches on Subject: below --
2021-07-27  6:08 Dong Du

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox