diff options
author | ringabout <43030857+ringabout@users.noreply.github.com> | 2024-02-20 14:28:45 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-20 07:28:45 +0100 |
commit | dfd778d0562b07653d1853de9f6d85f7c1688146 (patch) | |
tree | d62c88c716a2794699e28d580fb56bedbcc26293 /lib/std | |
parent | 9a4623033547ffa0d6746c91b9817b8353ed8361 (diff) | |
download | Nim-dfd778d0562b07653d1853de9f6d85f7c1688146.tar.gz |
fixes #23304; uses `snprintf` instead of `sprintf` (#23322)
fixes #23304
Diffstat (limited to 'lib/std')
-rw-r--r-- | lib/std/formatfloat.nim | 6 |
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] == ',': |