From: kusumi.tomohiro@gmail.com
To: axboe@kernel.dk, fio@vger.kernel.org
Cc: Tomohiro Kusumi <tkusumi@tuxera.com>
Subject: [PATCH 7/8] Fix num2str() output when maxlen <= strlen(tmp)
Date: Tue, 4 Apr 2017 23:22:17 +0300 [thread overview]
Message-ID: <20170404202218.52260-7-tkusumi@tuxera.com> (raw)
In-Reply-To: <20170404202218.52260-1-tkusumi@tuxera.com>
From: Tomohiro Kusumi <tkusumi@tuxera.com>
Since a local variable decimals is unsigned int, this conditional
if (decimals <= 1)
needs cast as shown below.
if ((int)decimals <= 1)
Otherwise it results in showing some garbage in case of maxlen == 0,
# cat ./test0.c
#include <stdio.h>
#include "lib/num2str.h"
int main(void) {
printf("%s\n", num2str(123, 3, 1, 1, N2S_BYTE));
printf("%s\n", num2str(123, 2, 1, 1, N2S_BYTE));
printf("%s\n", num2str(123, 1, 1, 1, N2S_BYTE));
printf("%s\n", num2str(123, 0, 1, 1, N2S_BYTE));
return 0;
}
# gcc -Wall -g -DCONFIG_STATIC_ASSERT ./test0.c ./lib/num2str.c
# ./a.out
123B
0KiB
0KiB
0.0?$-JB
# ./a.out
123B
0KiB
0KiB
0.0#;bB
# ./a.out
123B
0KiB
0KiB
0.0|B
whereas with this commit it prints "0B".
# gcc -Wall -g -DCONFIG_STATIC_ASSERT ./test0.c ./lib/num2str.c
# ./a.out
123B
0KiB
0KiB
0B
Signed-off-by: Tomohiro Kusumi <tkusumi@tuxera.com>
---
lib/num2str.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/num2str.c b/lib/num2str.c
index 2f714cc..448d3ff 100644
--- a/lib/num2str.c
+++ b/lib/num2str.c
@@ -86,7 +86,7 @@ done:
sprintf(tmp, "%llu", (unsigned long long) num);
decimals = maxlen - strlen(tmp);
- if (decimals <= 1) {
+ if ((int)decimals <= 1) {
if (carry)
num++;
goto done;
--
2.9.3
next prev parent reply other threads:[~2017-04-04 20:22 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-04 20:22 [PATCH 1/8] Don't silently terminate td when no I/O performed due to error kusumi.tomohiro
2017-04-04 20:22 ` [PATCH 2/8] dump_td_info() doesn't really need to be a function kusumi.tomohiro
2017-04-04 20:22 ` [PATCH 3/8] Add assert(0) to DDIR_DATASYNC sync path if fdatasync(2) is unsupported kusumi.tomohiro
2017-04-08 17:02 ` Jens Axboe
2017-04-04 20:22 ` [PATCH 4/8] Make lib/prio_tree.c a stand-alone library kusumi.tomohiro
2017-04-04 20:22 ` [PATCH 5/8] Make lib/memalign.c " kusumi.tomohiro
2017-04-04 20:22 ` [PATCH 6/8] Make lib/num2str.c a stand-alone library by adding lib/num2str.h kusumi.tomohiro
2017-04-04 20:22 ` kusumi.tomohiro [this message]
2017-04-04 20:22 ` [PATCH 8/8] Fix num2str() output when modulo != -1U kusumi.tomohiro
2017-04-04 20:46 ` Elliott, Robert (Persistent Memory)
2017-04-08 17:05 ` [PATCH 1/8] Don't silently terminate td when no I/O performed due to error Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170404202218.52260-7-tkusumi@tuxera.com \
--to=kusumi.tomohiro@gmail.com \
--cc=axboe@kernel.dk \
--cc=fio@vger.kernel.org \
--cc=tkusumi@tuxera.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.