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