/* -*-c-*-
*
- * $Id: noise.c,v 1.2 1999/11/11 00:59:08 mdw Exp $
+ * $Id: noise.c,v 1.5 1999/12/22 15:57:55 mdw Exp $
*
- * Acquisition of environmental noise (Unix specific)
+ * Acquisition of environmental noise (Unix-specific)
*
* (c) 1998 Straylight/Edgeware
*/
/*----- Revision history --------------------------------------------------*
*
* $Log: noise.c,v $
+ * Revision 1.5 1999/12/22 15:57:55 mdw
+ * Label system-specific parts more clearly.
+ *
+ * Revision 1.4 1999/12/10 23:25:15 mdw
+ * Bug fix: remove old spurious fflush.
+ *
+ * Revision 1.3 1999/12/10 23:24:11 mdw
+ * Bug fix: flush buffers before forking.
+ *
* Revision 1.2 1999/11/11 00:59:08 mdw
* A bit of reformatting. Initialize the uid and gid correctly.
*
* Use: Sets the user and group ids to be used by @noise_filter@
* when running child processes. This is useful to avoid
* giving shell commands (even carefully written ones) undue
- * privileges.
+ * privileges. This interface is Unix-specific
*/
void noise_setid(uid_t uid, gid_t gid)
* fails to complete within a short time period, it is killed.
* Paranoid use of close-on-exec flags for file descriptors is
* recommended.
+ *
+ * This interface is Unix-specific.
*/
int noise_filter(rand_pool *r, int good, const char *c)
/* --- Fork a child off --- */
+ fflush(0);
kid = fork();
if (kid < 0) {
close(fd[0]);
/* --- Handle the child end of the deal --- */
- fflush(0);
if (kid == 0) {
int f;