diff options
author | Werner Koch <wk@gnupg.org> | 2015-01-05 19:38:29 +0100 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2015-01-05 19:38:29 +0100 |
commit | 817472358a093438e802380caecf7139406400cf (patch) | |
tree | c9d7083fb4edc670e81c156834174f94beeccff2 /random | |
parent | 8c5eee51d9a25b143e41ffb7ff4a6b2a29b82d83 (diff) | |
download | libgcrypt-817472358a093438e802380caecf7139406400cf.tar.gz |
random: Silent warning under NetBSD using rndunix
* random/rndunix.c (STDERR_FILENO): Define if needed.
(start_gatherer): Re-open standard descriptors. Fix an
unsigned/signed pointer warning.
--
GnuPG-bug-id: 1702
Diffstat (limited to 'random')
-rw-r--r-- | random/rndunix.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/random/rndunix.c b/random/rndunix.c index 1b810d72..315906b0 100644 --- a/random/rndunix.c +++ b/random/rndunix.c @@ -144,6 +144,9 @@ #ifndef STDOUT_FILENO #define STDOUT_FILENO 1 #endif +#ifndef STDERR_FILENO +#define STDERR_FILENO 2 +#endif #define GATHER_BUFSIZE 49152 /* Usually about 25K are filled */ @@ -766,13 +769,27 @@ start_gatherer( int pipefd ) fclose(stderr); /* Arrghh!! It's Stuart code!! */ + /* Mary goes to Berkeley: NetBSD emits warnings if the standard + descriptors are not open when running setuid program. Thus we + connect them to the bitbucket if they are not already open. */ + { + struct stat statbuf; + + if (fstat (STDIN_FILENO, &statbuf) == -1 && errno == EBADF) + open ("/dev/null",O_RDONLY); + if (fstat (STDOUT_FILENO, &statbuf) == -1 && errno == EBADF) + open ("/dev/null",O_WRONLY); + if (fstat (STDERR_FILENO, &statbuf) == -1 && errno == EBADF) + open ("/dev/null",O_WRONLY); + } + for(;;) { GATHER_MSG msg; size_t nbytes; const char *p; msg.usefulness = slow_poll( dbgfp, dbgall, &nbytes ); - p = gather_buffer; + p = (const char*)gather_buffer; while( nbytes ) { msg.ndata = nbytes > sizeof(msg.data)? sizeof(msg.data) : nbytes; memcpy( msg.data, p, msg.ndata ); |