From feb183b9c9b47e6a5e5e243534d32263f165ec33 Mon Sep 17 00:00:00 2001 From: Walter de Jong Date: Thu, 28 Mar 2013 21:13:32 +0100 Subject: handle read() errors --- libtac/lib/magic.c | 14 +++++++------- 1 file 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 -- cgit v1.2.3