diff options
| author | Bernard Xiong <[email protected]> | 2019-01-25 10:29:24 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2019-01-25 10:29:24 +0800 |
| commit | 7aede1befbbdd0931675b7a43a1bfeac4192a75d (patch) | |
| tree | 9eaad26c21afc9b8de2983520aa4a226ddb448d7 | |
| parent | 71da3392fcfd68e07525ef13f1399b9cc18e13fa (diff) | |
| parent | 5c76d3d51693144c8424f4ce6ea51ff229304fc4 (diff) | |
Merge pull request #2245 from zhaojuntao/fix-sprintf
[src][kservice.c] 修复 snprintf 中 `print_number` 函数错误解析 `%.0d` format 的问题
| -rw-r--r-- | src/kservice.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/kservice.c b/src/kservice.c index c938f4110a..35a9210c25 100644 --- a/src/kservice.c +++ b/src/kservice.c @@ -601,6 +601,7 @@ static char *print_number(char *buf, #else char tmp[16]; #endif + int precision_bak = precision; const char *digits; static const char small_digits[] = "0123456789abcdef"; static const char large_digits[] = "0123456789ABCDEF"; @@ -724,7 +725,7 @@ static char *print_number(char *buf, #endif /* put number in the temporary buffer */ - while (i-- > 0) + while (i-- > 0 && (precision_bak != 0)) { if (buf <= end) *buf = tmp[i]; |
