History

avutil/random_seed: use fread() in read_random()

This ensures the requested amount of bytes is read. Also remove /dev/random as it's no longer necessary.

James Almer committed 3 years ago

Commit 7a1128c1 parent a3577581 file · +12 −11Browse files

Unified · Split

libavutil/random_seed.c+12−11
@@ -49,17 +49,20 @@ · 48 unmodified lines
49static int read_random(uint32_t *dst, const char *file)49static int read_random(uint32_t *dst, const char *file)
50{50{
51#if HAVE_UNISTD_H51#if HAVE_UNISTD_H
52 int fd = avpriv_open(file, O_RDONLY);52 FILE *fp = avpriv_fopen_utf8(file, "r");
53 int err = -1;53 size_t err;
54 54
55 if (fd == -1)55 if (!fp)
56 return -1;56 return AVERROR_UNKNOWN;
57 err = read(fd, dst, sizeof(*dst));57 err = fread(dst, 1, sizeof(*dst), fp);
58 close(fd);58 fclose(fp);
59 59
60 return err;60 if (err != sizeof(*dst))
61 return AVERROR_UNKNOWN;
62
63 return 0;
61#else64#else
62 return -1;65 return AVERROR(ENOSYS);
63#endif66#endif
64}67}
65 68
@@ -138,9 +141,7 @@ uint32_t av_get_random_seed(void) · 72 unmodified lines
138 return arc4random();141 return arc4random();
139#endif142#endif
140 143
141 if (read_random(&seed, "/dev/urandom") == sizeof(seed))144 if (!read_random(&seed, "/dev/urandom"))
142 return seed;
143 if (read_random(&seed, "/dev/random") == sizeof(seed))
144 return seed;145 return seed;
145 return get_generic_seed();146 return get_generic_seed();
146}147}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t