[PATCH] libbb: ensure mode_string is NUL terminated

Ron Yorston rmy at pobox.com
Fri Sep 17 09:16:06 UTC 2021


If the mode_string array is no longer static we can't rely on
it being NUL terminated.

function                                             old     new   delta
bb_mode_string                                       145     156     +11
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 11/0)               Total: 11 bytes

Signed-off-by: Ron Yorston <rmy at pobox.com>
---
 libbb/mode_string.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/libbb/mode_string.c b/libbb/mode_string.c
index 2b829016f..39a655d35 100644
--- a/libbb/mode_string.c
+++ b/libbb/mode_string.c
@@ -66,10 +66,7 @@ char* FAST_FUNC bb_mode_string(char buf[12], mode_t mode)
 		i += 4;
 	} while (i < 12);
 
-	/* Note: We don't bother with nul termination because bss initialization
-	 * should have taken care of that for us.  If the user scribbled in buf
-	 * memory, they deserve whatever happens.  But we'll at least assert. */
-	assert(buf[10] == 0);
+	buf[10] = '\0';
 
 	return buf;
 }
@@ -107,10 +104,7 @@ char* FAST_FUNC bb_mode_string(char buf[12], mode_t mode)
 		}
 	} while (i < 3);
 
-	/* Note: We don't bother with nul termination because bss initialization
-	 * should have taken care of that for us.  If the user scribbled in buf
-	 * memory, they deserve whatever happens.  But we'll at least assert. */
-	assert(buf[10] == 0);
+	buf[10] = '\0';
 
 	return buf;
 }
-- 
2.31.1



More information about the busybox mailing list