]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
nvme-print: Correct to print correct ascii character string length
authorTokunori Ikegami <ikegami.t@gmail.com>
Tue, 31 Oct 2023 23:14:35 +0000 (08:14 +0900)
committerDaniel Wagner <wagi@monom.org>
Thu, 2 Nov 2023 17:31:17 +0000 (18:31 +0100)
Signed-off-by: Tokunori Ikegami <ikegami.t@gmail.com>
nvme-print.c

index 41bfec0c9669357de7fcdbc88ec118193b342955..72a9f6aa5b88ffe247644d36a3a16b78eac23f30 100644 (file)
@@ -382,15 +382,14 @@ void nvme_show_relatives(const char *name)
 
 void d(unsigned char *buf, int len, int width, int group)
 {
-       int i, offset = 0, line_done = 0;
-       char ascii[32 + 1];
+       int i, offset = 0;
+       char ascii[32 + 1] = { 0 };
 
        assert(width < sizeof(ascii));
        printf("     ");
        for (i = 0; i <= 15; i++)
                printf("%3x", i);
        for (i = 0; i < len; i++) {
-               line_done = 0;
                if (i % width == 0)
                        printf( "\n%04x:", offset);
                if (i % group == 0)
@@ -399,18 +398,14 @@ void d(unsigned char *buf, int len, int width, int group)
                        printf( "%02x", buf[i]);
                ascii[i % width] = (buf[i] >= '!' && buf[i] <= '~') ? buf[i] : '.';
                if (((i + 1) % width) == 0) {
-                       ascii[i % width + 1] = '\0';
                        printf( " \"%.*s\"", width, ascii);
                        offset += width;
-                       line_done = 1;
+                       memset(ascii, 0, sizeof(ascii));
                }
        }
-       if (!line_done) {
+       if (strlen(ascii)) {
                unsigned b = width - (i % width);
-               ascii[i % width + 1] = '\0';
-               printf( " %*s \"%.*s\"",
-                               2 * b + b / group + (b % group ? 1 : 0), "",
-                               width, ascii);
+               printf( " %*s \"%.*s\"", 2 * b + b / group + (b % group ? 1 : 0), "", width, ascii);
        }
        printf( "\n");
 }