Thread (26 messages) 26 messages, 6 authors, 2021-10-27

Re: [PATCH 4/5] test_printf: Append '|' more efficiently

From: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Date: 2021-10-13 09:59:44

On 13/10/2021 07.22, Yafang Shao wrote:
On Wed, Oct 13, 2021 at 2:33 AM Matthew Wilcox (Oracle)
[off-list ref] wrote:
quoted
Instead of calling snprintf(), just append '|' by hand.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 lib/test_printf.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/test_printf.c b/lib/test_printf.c
index 60cdf4ba991e..662c3785aa57 100644
--- a/lib/test_printf.c
+++ b/lib/test_printf.c
@@ -623,9 +623,9 @@ page_flags_test(int section, int node, int zone, int last_cpupid,
                if (!pft[i].width)
                        continue;

-               if (append) {
-                       snprintf(cmp_buf + size, BUF_SIZE - size, "|");
-                       size = strlen(cmp_buf);
+               if (append && size < BUF_SIZE) {
Should it be:
                    if (append && size < BUF_SIZE - 1)
?
Perhaps, but the whole thing screams "don't do it like this". We have
seq_buf to abstract a "buffer with known length you can do a bunch of
snprintfs to". That's what should be used. Then the test can also error
out if seq_buf_has_overflowed(), because that's a bug in the test.

Alternatively, the right pattern is "size += scnprintf(cmp_buf + size,
BUF_SIZE - size)", since that will eventually saturate size at BUF_SIZE-1.

Rasmus
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help