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
4949 static int read_random(uint32_t *dst, const char *file)
5050 {
5151 #if HAVE_UNISTD_H
52− int fd = avpriv_open(file, O_RDONLY);
53− int err = -1;
52+ FILE *fp = avpriv_fopen_utf8(file, "r");
53+ size_t err;
5454
55− if (fd == -1)
56− return -1;
57− err = read(fd, dst, sizeof(*dst));
58− close(fd);
55+ if (!fp)
56+ return AVERROR_UNKNOWN;
57+ err = fread(dst, 1, sizeof(*dst), fp);
58+ fclose(fp);
5959
60− return err;
60+ if (err != sizeof(*dst))
61+ return AVERROR_UNKNOWN;
62+
63+ return 0;
6164 #else
62− return -1;
65+ return AVERROR(ENOSYS);
6366 #endif
6467 }
6568
@@ -138,9 +141,7 @@ uint32_t av_get_random_seed(void) · 72 unmodified lines
138141 return arc4random();
139142 #endif
140143
141− if (read_random(&seed, "/dev/urandom") == sizeof(seed))
142− return seed;
143− if (read_random(&seed, "/dev/random") == sizeof(seed))
144+ if (!read_random(&seed, "/dev/urandom"))
144145 return seed;
145146 return get_generic_seed();
146147 }

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