The standard streams must not be closed unless it is
the very last thing a program does before termination.
A warning about this was added to POSIX.1-2008 and later standards.
One must redirect stdin to /dev/null using freopen instead.
*/
#include <stdio.h>
#include <unistd.h>
+#include <stdlib.h>
+#include <err.h>
#include "md5.h"
ul_MD5Update( &ctx, buf, ret );
}
- fclose(stdin);
+ if(freopen ("/dev/null", "r", stdin) == NULL)
+ err(EXIT_FAILURE, "stdin->null failed!");
+
ul_MD5Final( digest, &ctx );
for (i = 0; i < UL_MD5LENGTH; i++)
*/
#include <stdio.h>
#include <unistd.h>
+#include <err.h>
+#include <stdlib.h>
#include "sha1.h"
ul_SHA1Update( &ctx, buf, ret );
}
- fclose(stdin);
+ if(freopen ("/dev/null", "r", stdin) == NULL)
+ err(EXIT_FAILURE, "stdin->null failed!");
+
ul_SHA1Final( digest, &ctx );
for (i = 0; i < UL_SHA1LENGTH; i++)