/dev/urandom can be a name special file in addition to a character special file
This commit is contained in:
parent
4705c0a066
commit
d8e870cb43
@ -134,7 +134,13 @@ randombytes_salsa20_random_random_dev_open(void)
|
|||||||
do {
|
do {
|
||||||
fd = open(*device, O_RDONLY);
|
fd = open(*device, O_RDONLY);
|
||||||
if (fd != -1) {
|
if (fd != -1) {
|
||||||
if (fstat(fd, &st) == 0 && S_ISCHR(st.st_mode)) {
|
if (fstat(fd, &st) == 0 &&
|
||||||
|
# ifdef S_IFNAM
|
||||||
|
(S_IFNAM(st.st_mode) || S_ISCHR(st.st_mode))
|
||||||
|
# else
|
||||||
|
S_ISCHR(st.st_mode)
|
||||||
|
# endif
|
||||||
|
) {
|
||||||
# if defined(F_SETFD) && defined(FD_CLOEXEC)
|
# if defined(F_SETFD) && defined(FD_CLOEXEC)
|
||||||
(void) fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
|
(void) fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
|
||||||
# endif
|
# endif
|
||||||
|
@ -119,7 +119,13 @@ randombytes_sysrandom_random_dev_open(void)
|
|||||||
do {
|
do {
|
||||||
fd = open(*device, O_RDONLY);
|
fd = open(*device, O_RDONLY);
|
||||||
if (fd != -1) {
|
if (fd != -1) {
|
||||||
if (fstat(fd, &st) == 0 && S_ISCHR(st.st_mode)) {
|
if (fstat(fd, &st) == 0 &&
|
||||||
|
# ifdef S_IFNAM
|
||||||
|
(S_IFNAM(st.st_mode) || S_ISCHR(st.st_mode))
|
||||||
|
# else
|
||||||
|
S_ISCHR(st.st_mode)
|
||||||
|
# endif
|
||||||
|
) {
|
||||||
# if defined(F_SETFD) && defined(FD_CLOEXEC)
|
# if defined(F_SETFD) && defined(FD_CLOEXEC)
|
||||||
(void) fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
|
(void) fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
|
||||||
# endif
|
# endif
|
||||||
|
Loading…
Reference in New Issue
Block a user