diff options
| author | Walter de Jong <walter@heiho.net> | 2013-03-28 21:13:32 +0100 |
|---|---|---|
| committer | Walter de Jong <walter@heiho.net> | 2013-03-28 21:13:32 +0100 |
| commit | feb183b9c9b47e6a5e5e243534d32263f165ec33 (patch) | |
| tree | dd381c897dc894bcba33cd9cecb0533da415d5ce | |
| parent | 3ae5543ee9c538e34bb8ae03293c07f76ab91f3f (diff) | |
| download | pam_tacplus-feb183b9c9b47e6a5e5e243534d32263f165ec33.tar.gz pam_tacplus-feb183b9c9b47e6a5e5e243534d32263f165ec33.zip | |
handle read() errors
| -rw-r--r-- | libtac/lib/magic.c | 14 |
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 |
