Browse Source

[src][kservice.c] 修复 snprintf 中 `print_number` 函数错误解析 `.0` format 的问题

Signed-off-by: MurphyZhao <d2014zjt@163.com>
MurphyZhao 6 years ago
parent
commit
5c76d3d516
1 changed files with 2 additions and 1 deletions
  1. 2 1
      src/kservice.c

+ 2 - 1
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];