Skip to contentSkip to conversation

lib: sbi: Fix bug in strncmp function

PATCH New Dong Du 3 participants 3 messages Jul 26, 2021 – Jul 28, 2021

lore
Share & tools
lore

Dong Du

author
#0 lore raw

PATCH 1/1 lib: sbi: Fix bug in strncmp function

From: Dong Du <[email protected]>

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

---
 lib/sbi/sbi_string.c | 3 +++
 1 file changed, 3 insertions(+)
lib/sbi/sbi_string.c +3 -0
index 7805ba4..f93ed5f 100644
@@ -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--)
 		;
Signature · 1 line
2.31.1
#1 lore raw

PATCH 1/1 lib: sbi: Fix bug in strncmp function

Quoted 15 lines · Dong Du

From: Dong Du <[email protected]>

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

---
 lib/sbi/sbi_string.c | 3 +++
 1 file changed, 3 insertions(+)
lib/sbi/sbi_string.c +0 -0
index 7805ba4..f93ed5f 100644

lib/sbi/sbi_string.c int sbi_strcmp(const char *a, const char *b) · line 37

Quoted 9 lines
lib/sbi/sbi_string.c +3 -0
@@ -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.

Signature · 3 lines
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."
#2 lore raw

PATCH 1/1 lib: sbi: Fix bug in strncmp function

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

Regards,
Dong

----- Original Message -----
From: "Andreas Schwab" <[email protected]>
To: "Dong Du" <[email protected]>
Cc: "anup patel" <[email protected]>, opensbi at lists.infradead.org, "Dd nirvana" <[email protected]>
Sent: Wednesday, July 28, 2021 12:15:09 AM
Subject: Re: [PATCH] lib: sbi: Fix bug in strncmp function

Quoted 15 lines · Dong Du

From: Dong Du <[email protected]>

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

---
 lib/sbi/sbi_string.c | 3 +++
 1 file changed, 3 insertions(+)
lib/sbi/sbi_string.c +0 -0
index 7805ba4..f93ed5f 100644

lib/sbi/sbi_string.c int sbi_strcmp(const char *a, const char *b) · line 37

Quoted 9 lines
lib/sbi/sbi_string.c +3 -0
@@ -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.

Signature · 3 lines
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."