summary refs log tree commit diff stats
path: root/lib/std
diff options
context:
space:
mode:
authorringabout <43030857+ringabout@users.noreply.github.com>2024-02-20 14:28:45 +0800
committerGitHub <noreply@github.com>2024-02-20 07:28:45 +0100
commitdfd778d0562b07653d1853de9f6d85f7c1688146 (patch)
treed62c88c716a2794699e28d580fb56bedbcc26293 /lib/std
parent9a4623033547ffa0d6746c91b9817b8353ed8361 (diff)
downloadNim-dfd778d0562b07653d1853de9f6d85f7c1688146.tar.gz
fixes #23304; uses `snprintf` instead of `sprintf` (#23322)
fixes #23304
Diffstat (limited to 'lib/std')
-rw-r--r--lib/std/formatfloat.nim6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/std/formatfloat.nim b/lib/std/formatfloat.nim
index 7103b5863..63d344215 100644
--- a/lib/std/formatfloat.nim
+++ b/lib/std/formatfloat.nim
@@ -35,8 +35,8 @@ proc writeFloatToBufferRoundtrip*(buf: var array[65, char]; value: float32): int
   result = float32ToChars(buf, value, forceTrailingDotZero=true).int
   buf[result] = '\0'
 
-proc c_sprintf(buf, frmt: cstring): cint {.header: "<stdio.h>",
-                                    importc: "sprintf", varargs, noSideEffect.}
+proc c_snprintf(buf: cstring, n: csize_t, frmt: cstring): cint {.header: "<stdio.h>",
+                                    importc: "snprintf", varargs, noSideEffect.}
 
 proc writeToBuffer(buf: var array[65, char]; value: cstring) =
   var i = 0
@@ -49,7 +49,7 @@ proc writeFloatToBufferSprintf*(buf: var array[65, char]; value: BiggestFloat):
   ##
   ## returns the amount of bytes written to `buf` not counting the
   ## terminating '\0' character.
-  var n = c_sprintf(cast[cstring](addr buf), "%.16g", value).int
+  var n = c_snprintf(cast[cstring](addr buf), 65, "%.16g", value).int
   var hasDot = false
   for i in 0..n-1:
     if buf[i] == ',':