The return of read() must be checked on some platform, possibly with a
recent version of glibc. Otherwise this gives an "ignoring return
value of 'read'" warning, which breaks the build. It happens on Ubuntu
14.04.
Use the return of read() to the random entropy to fix the issue. This
doesn't do much for the entropy, but it doesn't hurt either.
Signed-off-by: frank zago <fzago@cray.com>
Change-Id: Iee7c1bce818e2f163db8f860acf8be075f5a543e
Reviewed-on: http://review.whamcloud.com/13654
Reviewed-by: Patrick Farrell <paf@cray.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Henri Doreau <henri.doreau@cea.fr>
Reviewed-by: James Simmons <uja.ornl@gmail.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
fd = open("/dev/urandom", O_RDONLY | O_NOFOLLOW);
if (fd >= 0) {
unsigned int rnumber;
+ ssize_t ret;
- (void)read(fd, &rnumber, sizeof(rnumber));
- seed ^= rnumber;
+ ret = read(fd, &rnumber, sizeof(rnumber));
+ seed ^= rnumber ^ ret;
close(fd);
}