[U-Boot] [PATCH] hashtable: Fix length calculation in hexport_r

The length returned by hexport_r has a few redundant characters. This appears as NULL characters at the end so seems harmless.
Remove the surplus counts in two places
totlen += strlen(ep->key) + 2; I'm guessing the +2 here is for = and sep char. But there is another totlen += 2; line that does that.
size = totletn + 1; Doesn't make sense and isn't justified with any comment.
Signed-off-by: Zubair Lutfullah Kakakhel zubair@resin.io --- lib/hashtable.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/hashtable.c b/lib/hashtable.c index 52aab6d..64faa63 100644 --- a/lib/hashtable.c +++ b/lib/hashtable.c @@ -622,7 +622,7 @@ ssize_t hexport_r(struct hsearch_data *htab, const char sep, int flag,
list[n++] = ep;
- totlen += strlen(ep->key) + 2; + totlen += strlen(ep->key);
if (sep == '\0') { totlen += strlen(ep->data); @@ -662,7 +662,7 @@ ssize_t hexport_r(struct hsearch_data *htab, const char sep, int flag, return (-1); } } else { - size = totlen + 1; + size = totlen; }
/* Check if the user provided a buffer */

On Tue, Jul 17, 2018 at 07:25:38PM +0100, Zubair Lutfullah Kakakhel wrote:
The length returned by hexport_r has a few redundant characters. This appears as NULL characters at the end so seems harmless.
Remove the surplus counts in two places
totlen += strlen(ep->key) + 2; I'm guessing the +2 here is for = and sep char. But there is another totlen += 2; line that does that.
size = totletn + 1; Doesn't make sense and isn't justified with any comment.
Signed-off-by: Zubair Lutfullah Kakakhel zubair@resin.io
Applied to u-boot/master, thanks!
participants (2)
-
Tom Rini
-
Zubair Lutfullah Kakakhel