7be6390a5a
Copy from security/haveged based on submit request 49430 from user elvigia OBS-URL: https://build.opensuse.org/request/show/49430 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/haveged?expand=0&rev=1
69 lines
2.7 KiB
Diff
69 lines
2.7 KiB
Diff
Index: src/haveged.c
|
|
===================================================================
|
|
--- src/haveged.c.orig 2009-09-02 18:58:14.000000000 +0200
|
|
+++ src/haveged.c 2010-07-26 17:14:35.334236000 +0200
|
|
@@ -83,7 +83,7 @@ void daemonize(struct hperf *perf)
|
|
signal(SIGTERM, tidy_exit);
|
|
if (daemon(0, 0) == -1)
|
|
error_exit("Cannot fork into the background");
|
|
- fh = fopen(params->pid_file, "w");
|
|
+ fh = fopen(params->pid_file, "we");
|
|
if (!fh)
|
|
error_exit("Couldn't open PID file \"%s\" for writing: %m.", params->pid_file);
|
|
fprintf(fh, "%i", getpid());
|
|
@@ -147,12 +147,12 @@ int get_poolsize()
|
|
int max_bits,major,minor;
|
|
|
|
if (params->run_level==0) {
|
|
- poolsize_fh = fopen(params->poolsize, "rb");
|
|
+ poolsize_fh = fopen(params->poolsize, "rbe");
|
|
if (poolsize_fh) {
|
|
if (fscanf(poolsize_fh, "%d", &max_bits)!=1)
|
|
max_bits = -1;
|
|
fclose(poolsize_fh);
|
|
- osrel_fh = fopen(params->os_rel, "rb");
|
|
+ osrel_fh = fopen(params->os_rel, "rbe");
|
|
if (osrel_fh) {
|
|
if (fscanf(osrel_fh,"%d.%d", &major, &minor)<2)
|
|
major = minor = 0;
|
|
@@ -263,7 +263,7 @@ void run(int poolsize, struct rand_pool_
|
|
daemonize(perf);
|
|
if (params->low_water>0)
|
|
set_watermark(params->low_water);
|
|
- random_fd = open(params->random_device, O_RDWR);
|
|
+ random_fd = open(params->random_device, O_RDWR | O_CLOEXEC);
|
|
if (random_fd == -1)
|
|
error_exit("Couldn't open random device: %m");
|
|
break;
|
|
@@ -272,7 +272,7 @@ void run(int poolsize, struct rand_pool_
|
|
return;
|
|
default:
|
|
ct = params->sample_size*1024;
|
|
- if (!(fout = fopen (params->sample_out, "wb")))
|
|
+ if (!(fout = fopen (params->sample_out, "wbe")))
|
|
error_exit("Cannot open file <%s> for writing.\n", params->sample_out);
|
|
fprintf(stderr, "Writing %d byte sample\n",ct);
|
|
}
|
|
@@ -334,7 +334,7 @@ void set_watermark(int level)
|
|
{
|
|
FILE *wm_fh;
|
|
|
|
- wm_fh = fopen(params->watermark, "w");
|
|
+ wm_fh = fopen(params->watermark, "we");
|
|
if (wm_fh) {
|
|
fprintf(wm_fh, "%d\n", level);
|
|
fclose(wm_fh);
|
|
Index: configure.ac
|
|
===================================================================
|
|
--- configure.ac.orig 2009-09-02 01:22:33.000000000 +0200
|
|
+++ configure.ac 2010-07-26 17:20:58.745701000 +0200
|
|
@@ -8,7 +8,7 @@ AC_CONFIG_AUX_DIR(config)
|
|
AC_CONFIG_HEADER([config.h])
|
|
AM_INIT_AUTOMAKE
|
|
AC_CONFIG_SRCDIR([/src/haveged.c])
|
|
-
|
|
+AC_USE_SYSTEM_EXTENSIONS
|
|
## Make nist self-test configurable
|
|
AC_ARG_ENABLE(nistest, AS_HELP_STRING([--enable-nistest=[no/yes]],[Run NIST test suite [default=no]]),, enable_nistest="no")
|
|
if test "x$enable_nistest" = "xyes"; then
|