Package: haveged Version: 1.9.14 Severity: normal Tags: patch
Apparently since the introduction of "command mode" (option "-c"), haveged was no longer usable as an independent user application for generating high-quality random numbers. For no apparent reason, only one instance of the application was allowed to run, and so it could not be run as a user application while a haveged daemon (or even just another instance of the user application) was running at the same time. The provided patch checks whether the program is being run as a normal user application for directly delivering random numbers and ignores other instances in this case. I have also created an upstream bug report https://github.com/jirka-h/haveged/issues/66#issue-1043382947 for this problem.
Without this patch, the application tries to create the command socket, even when running as a regular user application for harvesting entropy independent of any daemon. This will fail if another instance of haveged is already running, no matter whether that other instance is a daemon or not. This patch will make the application ignore the socket when run as a regular user application, thus avoiding the problem. (Patch created 2021-11-03 by Guenther Brunthaler.) Index: haveged-1.9.14/src/haveged.c =================================================================== --- haveged-1.9.14.orig/src/haveged.c +++ haveged-1.9.14/src/haveged.c @@ -429,7 +429,7 @@ int main(int argc, char **argv) close(socket_fd); return ret; } - else { + else if (!(params->setup & RUN_AS_APP)){ socket_fd = cmd_listen(params); if (socket_fd >= 0) fprintf(stderr, "%s: command socket is listening at fd %d\n", params->daemon, socket_fd);