summary refs log tree commit diff stats
path: root/lib/std/private/gitutils.nim
diff options
context:
space:
mode:
authorTimothy Alexander <dragonfyre13@gmail.com>2021-10-26 13:32:52 -0500
committerGitHub <noreply@github.com>2021-10-26 20:32:52 +0200
commitdde556665aa79626b3477999fa898f7a8b758ca4 (patch)
tree01696e521e72e2c50779bfdb4413352ec7f99ca8 /lib/std/private/gitutils.nim
parent8d5a27518929bd4c54f4beb7e40a5fc382d3dd05 (diff)
downloadNim-dde556665aa79626b3477999fa898f7a8b758ca4.tar.gz
Fix #19052; [backport:1.6.0] (#19053)
* Fix #19052; [backport:1.6.0]

Adds a compile flag to avoid a getrandom syscall, fixing #19052.

This is neccesary when the getrandom syscall is missing, as noted in #19052, particularly in kernel versions < 3.17 when getrandom was introduced. Specifically relevant is this is missing from kernel 3.10, which is the supported kernel throughout RHEL 7 and CentOS 7, which is widely used at many organizations. Without this, versions of nim that include sysrand (i.e. versions >= 1.6.0) will not compile without modification, however with this change a compile flag may be used to fall back using /dev/urandom as done with any unknown Posix OS (preferred here as a fallback since it already supplies a cryptographically secure PRNG and existing code deals with entropy pool init, etc).

The change is placed behind a compile flag, as discussed in github ticket #19052 (summed up here):
* First, I can't seem to catch that a importc such as SYS_getrandom is declared without using it (the declared proc returns true, but compiler throws an undeclared identifier flag when referencing it).
* Second, it seemed preferable to be behaviorally explicit vs implicit when considering this is intended to be a cryptographically secure PRNG.
* Third, if I intend to compile on a kernel >= 3.17 while running the binary on at least one system < 3.17, I'll want to be able to target this without relying on a compile time determination if the getrandom syscall is available.

* Documenting compile flag for -d:nimNoGetRandom and adding changelog entry
Related to #19052 and comments in PR #19053. Also created a new changelog file since none currently exists.

Co-authored-by: Timothy Alexander <talexander@midwestlabs.com>
Diffstat (limited to 'lib/std/private/gitutils.nim')
0 files changed, 0 insertions, 0 deletions
href='#n170'>170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210