summaryrefslogtreecommitdiff
path: root/libtac/lib
diff options
context:
space:
mode:
authorPaweł Krawczyk <pawel.krawczyk@hush.com>2014-10-14 17:22:59 +0100
committerPaweł Krawczyk <pawel.krawczyk@hush.com>2014-10-14 17:22:59 +0100
commitec67b142dff2db32ad67b4c17d1896b197c450d0 (patch)
treef03177c73a4604d94c0d482d2475f37947959a91 /libtac/lib
parent1fc0ef67e79497c298d5b84b1f17226a49f4ec93 (diff)
parent50c0e0a61fd15636a12a2bdece548f78ff8dfe93 (diff)
downloadpam_tacplus-ec67b142dff2db32ad67b4c17d1896b197c450d0.tar.gz
pam_tacplus-ec67b142dff2db32ad67b4c17d1896b197c450d0.zip
Merge pull request #18 from pwdng/master
Close /dev/urandom to fix open file handler leak.
Diffstat (limited to 'libtac/lib')
-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();
}