[PATCH] tipc: fix a log bug

sunichi posted 1 patch 2 years, 7 months ago
net/tipc/addr.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
[PATCH] tipc: fix a log bug
Posted by sunichi 2 years, 7 months ago
When tipc stripe \x00 from string hex, it walks step by step
instead of two step.
It will cause a char which ascii low 4 bit is zero be striped.
So change one step iteration to two step to fix this bug.

Signed-off-by: sunichi <sunyiqixm@gmail.com>
---
 net/tipc/addr.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/net/tipc/addr.c b/net/tipc/addr.c
index fd0796269..83eb91ca3 100644
--- a/net/tipc/addr.c
+++ b/net/tipc/addr.c
@@ -117,8 +117,10 @@ char *tipc_nodeid2string(char *str, u8 *id)
 		sprintf(&str[2 * i], "%02x", id[i]);
 
 	/* Strip off trailing zeroes */
-	for (i = NODE_ID_STR_LEN - 2; str[i] == '0'; i--)
+	for (i = NODE_ID_STR_LEN - 2; str[i] == '0' && str[i - 1] == '0'; i -= 2) {
 		str[i] = 0;
+		str[i - 1] = 0;
+	}
 
 	return str;
 }
-- 
2.25.1
RE: [PATCH] tipc: fix a log bug
Posted by Tung Quang Nguyen 2 years, 7 months ago

>Subject: [PATCH] tipc: fix a log bug
Please rephrase this patch title, what is "log bug" ?
>
>When tipc stripe \x00 from string hex, it walks step by step
>instead of two step.
>It will cause a char which ascii low 4 bit is zero be striped.
>So change one step iteration to two step to fix this bug.
>
Please rephrase this change log by correcting typo/grammar and provide printouts of "tipc node list" command to prove unexpected/incorrect node id.
>Signed-off-by: sunichi <sunyiqixm@gmail.com>
If you can prove there is a bug, please add Fixes tag to your patch.
>---
> net/tipc/addr.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
>diff --git a/net/tipc/addr.c b/net/tipc/addr.c
>index fd0796269..83eb91ca3 100644
>--- a/net/tipc/addr.c
>+++ b/net/tipc/addr.c
>@@ -117,8 +117,10 @@ char *tipc_nodeid2string(char *str, u8 *id)
> 		sprintf(&str[2 * i], "%02x", id[i]);
>
> 	/* Strip off trailing zeroes */
>-	for (i = NODE_ID_STR_LEN - 2; str[i] == '0'; i--)
>+	for (i = NODE_ID_STR_LEN - 2; str[i] == '0' && str[i - 1] == '0'; i -= 2) {
> 		str[i] = 0;
>+		str[i - 1] = 0;
>+	}
>
> 	return str;
> }
>--
>2.25.1