1
0
Эх сурвалжийг харах

Merge pull request #2245 from zhaojuntao/fix-sprintf

[src][kservice.c] 修复 snprintf 中 `print_number` 函数错误解析 `%.0d` format 的问题
Bernard Xiong 6 жил өмнө
parent
commit
7aede1befb
1 өөрчлөгдсөн 2 нэмэгдсэн , 1 устгасан
  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];