summaryrefslogtreecommitdiff
path: root/libtac
diff options
context:
space:
mode:
Diffstat (limited to 'libtac')
-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