soc: qcom: cmd-db: Drop NUL bytes from debugfs output
authorBjorn Andersson <quic_bjorande@quicinc.com>
Tue, 20 Jun 2023 21:37:03 +0000 (14:37 -0700)
committerBjorn Andersson <andersson@kernel.org>
Mon, 10 Jul 2023 04:18:29 +0000 (21:18 -0700)
The debugfs dump of Command DB relies uses %*pEp to print the resource
identifiers, with escaping of non-printable characters.
But p (ESCAPE_NP) does not escape NUL characters, so for identifiers
less than 8 bytes in length the output will retain these.

This does not cause an issue while looking at the dump in the terminal
(no known complaints at least), but when programmatically consuming the
debugfs output the extra characters are unwanted.

Change the fixed 8-byte sizeof() to a dynamic strnlen() to avoid
printing these NUL characters.

Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Link: https://lore.kernel.org/r/20230620213703.283583-1-quic_bjorande@quicinc.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
drivers/soc/qcom/cmd-db.c

index 33856abd560c0e8f078f9c7230f98e637829038e..34c40368d5b5eca960eddf394735702acbed977a 100644 (file)
@@ -284,7 +284,7 @@ static int cmd_db_debugfs_dump(struct seq_file *seq, void *p)
                ent = rsc_to_entry_header(rsc);
                for (j = 0; j < le16_to_cpu(rsc->cnt); j++, ent++) {
                        seq_printf(seq, "0x%05x: %*pEp", le32_to_cpu(ent->addr),
-                                  (int)sizeof(ent->id), ent->id);
+                                  (int)strnlen(ent->id, sizeof(ent->id)), ent->id);
 
                        len = le16_to_cpu(ent->len);
                        if (len) {