acefa2bb6e
According to crypt(3):
"crypt places its result in a static storage area, which will be
overwritten by subsequent calls to crypt. It is not safe to call crypt
from multiple threads simultaneously."
This means that multiple login calls as a PBS-realm user can collide and
produce intermittent authentication failures. A visible case is for
file-restore, where VMs with many disks lead to just as many auth-calls
at the same time, as the GUI tries to expand each tree element on load.
Instead, use the thread-safe variant 'crypt_r', which places the result
into a pre-allocated buffer of type 'crypt_data'. The C struct is laid
out according to 'lib/crypt.h.in' and the man page mentioned above.
Use the opportunity and make both arguments to the rust 'crypt' function
take a &[u8].
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
(cherry picked from commit
|
||
---|---|---|
.. | ||
acme | ||
api2 | ||
backup | ||
bin | ||
client | ||
config | ||
pxar | ||
rrd | ||
server | ||
tape | ||
tools | ||
api2.rs | ||
auth_helpers.rs | ||
auth.rs | ||
backup.rs | ||
buildcfg.rs | ||
client.rs | ||
config.rs | ||
lib.rs | ||
server.rs | ||
task.rs | ||
tools.rs |