summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpwdng <pwdng@users.noreply.github.com>2014-10-14 18:12:17 +0200
committerpwdng <pwdng@users.noreply.github.com>2014-10-14 18:12:17 +0200
commit50c0e0a61fd15636a12a2bdece548f78ff8dfe93 (patch)
treef03177c73a4604d94c0d482d2475f37947959a91
parent1fc0ef67e79497c298d5b84b1f17226a49f4ec93 (diff)
downloadpam_tacplus-50c0e0a61fd15636a12a2bdece548f78ff8dfe93.tar.gz
pam_tacplus-50c0e0a61fd15636a12a2bdece548f78ff8dfe93.zip
Close /dev/urandom to fix open file handler leak.
-rw-r--r--libtac/lib/magic.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libtac/lib/magic.c b/libtac/lib/magic.c
index 308dc03..9785314 100644
--- a/libtac/lib/magic.c
+++ b/libtac/lib/magic.c
@@ -77,8 +77,10 @@ magic()
if(rfd > -1) {
u_int32_t ret;
+ int nb_read = read(rfd, &ret, sizeof(ret));
+ close(rfd);
- if (read(rfd, &ret, sizeof(ret)) < sizeof(ret)) {
+ if (nb_read < sizeof(ret)) {
/* on read() error fallback to other method */
return (u_int32_t)random();
}