summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWalter de Jong <walter@heiho.net>2013-03-28 21:13:32 +0100
committerWalter de Jong <walter@heiho.net>2013-03-28 21:13:32 +0100
commitfeb183b9c9b47e6a5e5e243534d32263f165ec33 (patch)
treedd381c897dc894bcba33cd9cecb0533da415d5ce
parent3ae5543ee9c538e34bb8ae03293c07f76ab91f3f (diff)
downloadpam_tacplus-feb183b9c9b47e6a5e5e243534d32263f165ec33.tar.gz
pam_tacplus-feb183b9c9b47e6a5e5e243534d32263f165ec33.zip
handle read() errors
-rw-r--r--libtac/lib/magic.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/libtac/lib/magic.c b/libtac/lib/magic.c
index e813afc..ef3128c 100644
--- a/libtac/lib/magic.c
+++ b/libtac/lib/magic.c
@@ -76,15 +76,15 @@ magic()
if (magic_inited == 0 )
magic_init();
- if(rfd > -1) {
- read(rfd, &ret, sizeof(ret));
- return ret;
- }
- else
+ if(rfd > -1) {
+ if (read(rfd, &ret, sizeof(ret)) < sizeof(ret)) {
+ /* on read() error, fallback to other method */
return (u_int32_t) mrand48();
-#else
- return (u_int32_t) mrand48();
+ }
+ return ret;
+ }
#endif
+ return (u_int32_t) mrand48();
}
#ifdef NO_DRAND48