]> tinc-vpn.org Git - tinc/blobdiff - src/nolegacy/crypto.c
Fix segfault when failing to read random numbers.
[tinc] / src / nolegacy / crypto.c
index b013f1f94019ba9afd165847592258b7a2c020d1..d6e2ce13c69ddc15cdf357eb918142c16826415e 100644 (file)
@@ -46,10 +46,10 @@ void randomize(void *vout, size_t outlen) {
        char *out = vout;
 
        while(outlen) {
-               size_t len = read(random_fd, out, outlen);
+               ssize_t len = read(random_fd, out, outlen);
 
                if(len <= 0) {
-                       if(errno == EAGAIN || errno == EINTR) {
+                       if(len == -1 && (errno == EAGAIN || errno == EINTR)) {
                                continue;
                        }