* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.