Change-Id: Ic1c97915c98bfa26cc04f28adf3d3292ef157aa2
while (remaining > 0) {
#ifdef SYS_getrandom
- ssize_t n = syscall(SYS_getrandom, buf + received, remaining, 0);
+ ssize_t n = TEMP_FAILURE_RETRY(syscall(SYS_getrandom, buf + received, remaining, 0));
#else /* SYS_getrandom */
- ssize_t n = read(urandom_fd, buf + received, remaining);
+ ssize_t n = TEMP_FAILURE_RETRY(read(urandom_fd, buf + received, remaining));
#endif /* SYS_getrandom */
- if (n == -1) {
- if (errno == EINTR)
- continue;
-
+ if (n == -1)
return 0;
- }
received += n;
remaining -= n;