diff options
author | wouter <> | 2014-07-12 20:41:47 +0000 |
---|---|---|
committer | wouter <> | 2014-07-12 20:41:47 +0000 |
commit | 7e5def1fdfe6823f73bf90b40c67dda803608ade (patch) | |
tree | 9b680c598783f224f36f39f6030e4d4cd59fc56b /src/lib | |
parent | 88f737c074f7fdc1e089af4d15ae3c420ff0d092 (diff) | |
download | openbsd-7e5def1fdfe6823f73bf90b40c67dda803608ade.tar.gz openbsd-7e5def1fdfe6823f73bf90b40c67dda803608ade.tar.bz2 openbsd-7e5def1fdfe6823f73bf90b40c67dda803608ade.zip |
Remove signed/unsigned warning, statement before declaration and
add a function to use function pointers that does not take sizeof(fptr).
OK beck@
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/libcrypto/arc4random/getentropy_linux.c | 23 | ||||
-rw-r--r-- | src/lib/libcrypto/arc4random/getentropy_osx.c | 19 | ||||
-rw-r--r-- | src/lib/libcrypto/arc4random/getentropy_solaris.c | 19 | ||||
-rw-r--r-- | src/lib/libcrypto/crypto/getentropy_linux.c | 23 | ||||
-rw-r--r-- | src/lib/libcrypto/crypto/getentropy_osx.c | 19 | ||||
-rw-r--r-- | src/lib/libcrypto/crypto/getentropy_solaris.c | 19 |
6 files changed, 64 insertions, 58 deletions
diff --git a/src/lib/libcrypto/arc4random/getentropy_linux.c b/src/lib/libcrypto/arc4random/getentropy_linux.c index 294b23037f..f550a9d365 100644 --- a/src/lib/libcrypto/arc4random/getentropy_linux.c +++ b/src/lib/libcrypto/arc4random/getentropy_linux.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: getentropy_linux.c,v 1.20 2014/07/12 15:43:49 beck Exp $ */ | 1 | /* $OpenBSD: getentropy_linux.c,v 1.21 2014/07/12 20:41:47 wouter Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2014 Theo de Raadt <deraadt@openbsd.org> | 4 | * Copyright (c) 2014 Theo de Raadt <deraadt@openbsd.org> |
@@ -65,6 +65,7 @@ | |||
65 | 65 | ||
66 | #define HR(x, l) (SHA512_Update(&ctx, (char *)(x), (l))) | 66 | #define HR(x, l) (SHA512_Update(&ctx, (char *)(x), (l))) |
67 | #define HD(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (x))) | 67 | #define HD(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (x))) |
68 | #define HF(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (void*))) | ||
68 | 69 | ||
69 | int getentropy(void *buf, size_t len); | 70 | int getentropy(void *buf, size_t len); |
70 | 71 | ||
@@ -209,7 +210,7 @@ start: | |||
209 | } | 210 | } |
210 | for (i = 0; i < len; ) { | 211 | for (i = 0; i < len; ) { |
211 | size_t wanted = len - i; | 212 | size_t wanted = len - i; |
212 | ssize_t ret = read(fd, buf + i, wanted); | 213 | ssize_t ret = read(fd, (char *)buf + i, wanted); |
213 | 214 | ||
214 | if (ret == -1) { | 215 | if (ret == -1) { |
215 | if (errno == EAGAIN || errno == EINTR) | 216 | if (errno == EAGAIN || errno == EINTR) |
@@ -234,11 +235,11 @@ static int | |||
234 | getentropy_sysctl(void *buf, size_t len) | 235 | getentropy_sysctl(void *buf, size_t len) |
235 | { | 236 | { |
236 | static int mib[] = { CTL_KERN, KERN_RANDOM, RANDOM_UUID }; | 237 | static int mib[] = { CTL_KERN, KERN_RANDOM, RANDOM_UUID }; |
237 | size_t i, chunk; | 238 | size_t i; |
238 | int save_errno = errno; | 239 | int save_errno = errno; |
239 | 240 | ||
240 | for (i = 0; i < len; ) { | 241 | for (i = 0; i < len; ) { |
241 | chunk = min(len - i, 16); | 242 | size_t chunk = min(len - i, 16); |
242 | 243 | ||
243 | /* SYS__sysctl because some systems already removed sysctl() */ | 244 | /* SYS__sysctl because some systems already removed sysctl() */ |
244 | struct __sysctl_args args = { | 245 | struct __sysctl_args args = { |
@@ -290,7 +291,7 @@ static int | |||
290 | getentropy_fallback(void *buf, size_t len) | 291 | getentropy_fallback(void *buf, size_t len) |
291 | { | 292 | { |
292 | uint8_t results[SHA512_DIGEST_LENGTH]; | 293 | uint8_t results[SHA512_DIGEST_LENGTH]; |
293 | int save_errno = errno, e, m, pgs = getpagesize(), faster = 0, repeat; | 294 | int save_errno = errno, e, pgs = getpagesize(), faster = 0, repeat; |
294 | static int cnt; | 295 | static int cnt; |
295 | struct timespec ts; | 296 | struct timespec ts; |
296 | struct timeval tv; | 297 | struct timeval tv; |
@@ -300,7 +301,7 @@ getentropy_fallback(void *buf, size_t len) | |||
300 | SHA512_CTX ctx; | 301 | SHA512_CTX ctx; |
301 | static pid_t lastpid; | 302 | static pid_t lastpid; |
302 | pid_t pid; | 303 | pid_t pid; |
303 | size_t i, ii; | 304 | size_t i, ii, m; |
304 | char *p; | 305 | char *p; |
305 | 306 | ||
306 | pid = getpid(); | 307 | pid = getpid(); |
@@ -329,7 +330,7 @@ getentropy_fallback(void *buf, size_t len) | |||
329 | HX((pid = getsid(pid)) == -1, pid); | 330 | HX((pid = getsid(pid)) == -1, pid); |
330 | HX((pid = getppid()) == -1, pid); | 331 | HX((pid = getppid()) == -1, pid); |
331 | HX((pid = getpgid(0)) == -1, pid); | 332 | HX((pid = getpgid(0)) == -1, pid); |
332 | HX((m = getpriority(0, 0)) == -1, m); | 333 | HX((e = getpriority(0, 0)) == -1, e); |
333 | 334 | ||
334 | if (!faster) { | 335 | if (!faster) { |
335 | ts.tv_sec = 0; | 336 | ts.tv_sec = 0; |
@@ -341,9 +342,9 @@ getentropy_fallback(void *buf, size_t len) | |||
341 | HX(sigprocmask(SIG_BLOCK, NULL, &sigset) == -1, | 342 | HX(sigprocmask(SIG_BLOCK, NULL, &sigset) == -1, |
342 | sigset); | 343 | sigset); |
343 | 344 | ||
344 | HD(main); /* an addr in program */ | 345 | HF(main); /* an addr in program */ |
345 | HD(getentropy); /* an addr in this library */ | 346 | HF(getentropy); /* an addr in this library */ |
346 | HD(printf); /* an addr in libc */ | 347 | HF(printf); /* an addr in libc */ |
347 | p = (char *)&p; | 348 | p = (char *)&p; |
348 | HD(p); /* an addr on stack */ | 349 | HD(p); /* an addr on stack */ |
349 | p = (char *)&errno; | 350 | p = (char *)&errno; |
@@ -483,7 +484,7 @@ getentropy_fallback(void *buf, size_t len) | |||
483 | #endif | 484 | #endif |
484 | 485 | ||
485 | SHA512_Final(results, &ctx); | 486 | SHA512_Final(results, &ctx); |
486 | memcpy(buf + i, results, min(sizeof(results), len - i)); | 487 | memcpy((char *)buf + i, results, min(sizeof(results), len - i)); |
487 | i += min(sizeof(results), len - i); | 488 | i += min(sizeof(results), len - i); |
488 | } | 489 | } |
489 | memset(results, 0, sizeof results); | 490 | memset(results, 0, sizeof results); |
diff --git a/src/lib/libcrypto/arc4random/getentropy_osx.c b/src/lib/libcrypto/arc4random/getentropy_osx.c index 67583f9e13..c7e09c78a5 100644 --- a/src/lib/libcrypto/arc4random/getentropy_osx.c +++ b/src/lib/libcrypto/arc4random/getentropy_osx.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: getentropy_osx.c,v 1.3 2014/07/12 14:48:00 deraadt Exp $ */ | 1 | /* $OpenBSD: getentropy_osx.c,v 1.4 2014/07/12 20:41:47 wouter Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2014 Theo de Raadt <deraadt@openbsd.org> | 4 | * Copyright (c) 2014 Theo de Raadt <deraadt@openbsd.org> |
@@ -70,6 +70,7 @@ | |||
70 | 70 | ||
71 | #define HR(x, l) (SHA512_Update(&ctx, (char *)(x), (l))) | 71 | #define HR(x, l) (SHA512_Update(&ctx, (char *)(x), (l))) |
72 | #define HD(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (x))) | 72 | #define HD(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (x))) |
73 | #define HF(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (void*))) | ||
73 | 74 | ||
74 | int getentropy(void *buf, size_t len); | 75 | int getentropy(void *buf, size_t len); |
75 | 76 | ||
@@ -184,7 +185,7 @@ start: | |||
184 | } | 185 | } |
185 | for (i = 0; i < len; ) { | 186 | for (i = 0; i < len; ) { |
186 | size_t wanted = len - i; | 187 | size_t wanted = len - i; |
187 | ssize_t ret = read(fd, buf + i, wanted); | 188 | ssize_t ret = read(fd, (char *)buf + i, wanted); |
188 | 189 | ||
189 | if (ret == -1) { | 190 | if (ret == -1) { |
190 | if (errno == EAGAIN || errno == EINTR) | 191 | if (errno == EAGAIN || errno == EINTR) |
@@ -214,7 +215,7 @@ static int | |||
214 | getentropy_fallback(void *buf, size_t len) | 215 | getentropy_fallback(void *buf, size_t len) |
215 | { | 216 | { |
216 | uint8_t results[SHA512_DIGEST_LENGTH]; | 217 | uint8_t results[SHA512_DIGEST_LENGTH]; |
217 | int save_errno = errno, e, m, pgs = getpagesize(), faster = 0, repeat; | 218 | int save_errno = errno, e, pgs = getpagesize(), faster = 0, repeat; |
218 | static int cnt; | 219 | static int cnt; |
219 | struct timespec ts; | 220 | struct timespec ts; |
220 | struct timeval tv; | 221 | struct timeval tv; |
@@ -224,7 +225,7 @@ getentropy_fallback(void *buf, size_t len) | |||
224 | SHA512_CTX ctx; | 225 | SHA512_CTX ctx; |
225 | static pid_t lastpid; | 226 | static pid_t lastpid; |
226 | pid_t pid; | 227 | pid_t pid; |
227 | size_t i, ii; | 228 | size_t i, ii, m; |
228 | char *p; | 229 | char *p; |
229 | struct tcpstat tcpstat; | 230 | struct tcpstat tcpstat; |
230 | struct udpstat udpstat; | 231 | struct udpstat udpstat; |
@@ -279,7 +280,7 @@ getentropy_fallback(void *buf, size_t len) | |||
279 | HX((pid = getsid(pid)) == -1, pid); | 280 | HX((pid = getsid(pid)) == -1, pid); |
280 | HX((pid = getppid()) == -1, pid); | 281 | HX((pid = getppid()) == -1, pid); |
281 | HX((pid = getpgid(0)) == -1, pid); | 282 | HX((pid = getpgid(0)) == -1, pid); |
282 | HX((m = getpriority(0, 0)) == -1, m); | 283 | HX((e = getpriority(0, 0)) == -1, e); |
283 | 284 | ||
284 | if (!faster) { | 285 | if (!faster) { |
285 | ts.tv_sec = 0; | 286 | ts.tv_sec = 0; |
@@ -291,9 +292,9 @@ getentropy_fallback(void *buf, size_t len) | |||
291 | HX(sigprocmask(SIG_BLOCK, NULL, &sigset) == -1, | 292 | HX(sigprocmask(SIG_BLOCK, NULL, &sigset) == -1, |
292 | sigset); | 293 | sigset); |
293 | 294 | ||
294 | HD(main); /* an addr in program */ | 295 | HF(main); /* an addr in program */ |
295 | HD(getentropy); /* an addr in this library */ | 296 | HF(getentropy); /* an addr in this library */ |
296 | HD(printf); /* an addr in libc */ | 297 | HF(printf); /* an addr in libc */ |
297 | p = (char *)&p; | 298 | p = (char *)&p; |
298 | HD(p); /* an addr on stack */ | 299 | HD(p); /* an addr on stack */ |
299 | p = (char *)&errno; | 300 | p = (char *)&errno; |
@@ -413,7 +414,7 @@ getentropy_fallback(void *buf, size_t len) | |||
413 | } | 414 | } |
414 | 415 | ||
415 | SHA512_Final(results, &ctx); | 416 | SHA512_Final(results, &ctx); |
416 | memcpy(buf + i, results, min(sizeof(results), len - i)); | 417 | memcpy((char *)buf + i, results, min(sizeof(results), len - i)); |
417 | i += min(sizeof(results), len - i); | 418 | i += min(sizeof(results), len - i); |
418 | } | 419 | } |
419 | memset(results, 0, sizeof results); | 420 | memset(results, 0, sizeof results); |
diff --git a/src/lib/libcrypto/arc4random/getentropy_solaris.c b/src/lib/libcrypto/arc4random/getentropy_solaris.c index 83cc30aac2..cfd5b70475 100644 --- a/src/lib/libcrypto/arc4random/getentropy_solaris.c +++ b/src/lib/libcrypto/arc4random/getentropy_solaris.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: getentropy_solaris.c,v 1.3 2014/07/12 14:46:31 deraadt Exp $ */ | 1 | /* $OpenBSD: getentropy_solaris.c,v 1.4 2014/07/12 20:41:47 wouter Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2014 Theo de Raadt <deraadt@openbsd.org> | 4 | * Copyright (c) 2014 Theo de Raadt <deraadt@openbsd.org> |
@@ -60,6 +60,7 @@ | |||
60 | 60 | ||
61 | #define HR(x, l) (SHA512_Update(&ctx, (char *)(x), (l))) | 61 | #define HR(x, l) (SHA512_Update(&ctx, (char *)(x), (l))) |
62 | #define HD(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (x))) | 62 | #define HD(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (x))) |
63 | #define HF(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (void*))) | ||
63 | 64 | ||
64 | int getentropy(void *buf, size_t len); | 65 | int getentropy(void *buf, size_t len); |
65 | 66 | ||
@@ -194,7 +195,7 @@ start: | |||
194 | } | 195 | } |
195 | for (i = 0; i < len; ) { | 196 | for (i = 0; i < len; ) { |
196 | size_t wanted = len - i; | 197 | size_t wanted = len - i; |
197 | ssize_t ret = read(fd, buf + i, wanted); | 198 | ssize_t ret = read(fd, (char *)buf + i, wanted); |
198 | 199 | ||
199 | if (ret == -1) { | 200 | if (ret == -1) { |
200 | if (errno == EAGAIN || errno == EINTR) | 201 | if (errno == EAGAIN || errno == EINTR) |
@@ -243,7 +244,7 @@ static int | |||
243 | getentropy_fallback(void *buf, size_t len) | 244 | getentropy_fallback(void *buf, size_t len) |
244 | { | 245 | { |
245 | uint8_t results[SHA512_DIGEST_LENGTH]; | 246 | uint8_t results[SHA512_DIGEST_LENGTH]; |
246 | int save_errno = errno, e, m, pgs = getpagesize(), faster = 0, repeat; | 247 | int save_errno = errno, e, pgs = getpagesize(), faster = 0, repeat; |
247 | static int cnt; | 248 | static int cnt; |
248 | struct timespec ts; | 249 | struct timespec ts; |
249 | struct timeval tv; | 250 | struct timeval tv; |
@@ -254,7 +255,7 @@ getentropy_fallback(void *buf, size_t len) | |||
254 | SHA512_CTX ctx; | 255 | SHA512_CTX ctx; |
255 | static pid_t lastpid; | 256 | static pid_t lastpid; |
256 | pid_t pid; | 257 | pid_t pid; |
257 | size_t i, ii; | 258 | size_t i, ii, m; |
258 | char *p; | 259 | char *p; |
259 | 260 | ||
260 | pid = getpid(); | 261 | pid = getpid(); |
@@ -283,7 +284,7 @@ getentropy_fallback(void *buf, size_t len) | |||
283 | HX((pid = getsid(pid)) == -1, pid); | 284 | HX((pid = getsid(pid)) == -1, pid); |
284 | HX((pid = getppid()) == -1, pid); | 285 | HX((pid = getppid()) == -1, pid); |
285 | HX((pid = getpgid(0)) == -1, pid); | 286 | HX((pid = getpgid(0)) == -1, pid); |
286 | HX((m = getpriority(0, 0)) == -1, m); | 287 | HX((e = getpriority(0, 0)) == -1, e); |
287 | HX((getloadavg(loadavg, 3) == -1), loadavg); | 288 | HX((getloadavg(loadavg, 3) == -1), loadavg); |
288 | 289 | ||
289 | if (!faster) { | 290 | if (!faster) { |
@@ -296,9 +297,9 @@ getentropy_fallback(void *buf, size_t len) | |||
296 | HX(sigprocmask(SIG_BLOCK, NULL, &sigset) == -1, | 297 | HX(sigprocmask(SIG_BLOCK, NULL, &sigset) == -1, |
297 | sigset); | 298 | sigset); |
298 | 299 | ||
299 | HD(main); /* an addr in program */ | 300 | HF(main); /* an addr in program */ |
300 | HD(getentropy); /* an addr in this library */ | 301 | HF(getentropy); /* an addr in this library */ |
301 | HD(printf); /* an addr in libc */ | 302 | HF(printf); /* an addr in libc */ |
302 | p = (char *)&p; | 303 | p = (char *)&p; |
303 | HD(p); /* an addr on stack */ | 304 | HD(p); /* an addr on stack */ |
304 | p = (char *)&errno; | 305 | p = (char *)&errno; |
@@ -416,7 +417,7 @@ getentropy_fallback(void *buf, size_t len) | |||
416 | HD(cnt); | 417 | HD(cnt); |
417 | } | 418 | } |
418 | SHA512_Final(results, &ctx); | 419 | SHA512_Final(results, &ctx); |
419 | memcpy(buf + i, results, min(sizeof(results), len - i)); | 420 | memcpy((char *)buf + i, results, min(sizeof(results), len - i)); |
420 | i += min(sizeof(results), len - i); | 421 | i += min(sizeof(results), len - i); |
421 | } | 422 | } |
422 | memset(results, 0, sizeof results); | 423 | memset(results, 0, sizeof results); |
diff --git a/src/lib/libcrypto/crypto/getentropy_linux.c b/src/lib/libcrypto/crypto/getentropy_linux.c index 294b23037f..f550a9d365 100644 --- a/src/lib/libcrypto/crypto/getentropy_linux.c +++ b/src/lib/libcrypto/crypto/getentropy_linux.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: getentropy_linux.c,v 1.20 2014/07/12 15:43:49 beck Exp $ */ | 1 | /* $OpenBSD: getentropy_linux.c,v 1.21 2014/07/12 20:41:47 wouter Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2014 Theo de Raadt <deraadt@openbsd.org> | 4 | * Copyright (c) 2014 Theo de Raadt <deraadt@openbsd.org> |
@@ -65,6 +65,7 @@ | |||
65 | 65 | ||
66 | #define HR(x, l) (SHA512_Update(&ctx, (char *)(x), (l))) | 66 | #define HR(x, l) (SHA512_Update(&ctx, (char *)(x), (l))) |
67 | #define HD(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (x))) | 67 | #define HD(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (x))) |
68 | #define HF(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (void*))) | ||
68 | 69 | ||
69 | int getentropy(void *buf, size_t len); | 70 | int getentropy(void *buf, size_t len); |
70 | 71 | ||
@@ -209,7 +210,7 @@ start: | |||
209 | } | 210 | } |
210 | for (i = 0; i < len; ) { | 211 | for (i = 0; i < len; ) { |
211 | size_t wanted = len - i; | 212 | size_t wanted = len - i; |
212 | ssize_t ret = read(fd, buf + i, wanted); | 213 | ssize_t ret = read(fd, (char *)buf + i, wanted); |
213 | 214 | ||
214 | if (ret == -1) { | 215 | if (ret == -1) { |
215 | if (errno == EAGAIN || errno == EINTR) | 216 | if (errno == EAGAIN || errno == EINTR) |
@@ -234,11 +235,11 @@ static int | |||
234 | getentropy_sysctl(void *buf, size_t len) | 235 | getentropy_sysctl(void *buf, size_t len) |
235 | { | 236 | { |
236 | static int mib[] = { CTL_KERN, KERN_RANDOM, RANDOM_UUID }; | 237 | static int mib[] = { CTL_KERN, KERN_RANDOM, RANDOM_UUID }; |
237 | size_t i, chunk; | 238 | size_t i; |
238 | int save_errno = errno; | 239 | int save_errno = errno; |
239 | 240 | ||
240 | for (i = 0; i < len; ) { | 241 | for (i = 0; i < len; ) { |
241 | chunk = min(len - i, 16); | 242 | size_t chunk = min(len - i, 16); |
242 | 243 | ||
243 | /* SYS__sysctl because some systems already removed sysctl() */ | 244 | /* SYS__sysctl because some systems already removed sysctl() */ |
244 | struct __sysctl_args args = { | 245 | struct __sysctl_args args = { |
@@ -290,7 +291,7 @@ static int | |||
290 | getentropy_fallback(void *buf, size_t len) | 291 | getentropy_fallback(void *buf, size_t len) |
291 | { | 292 | { |
292 | uint8_t results[SHA512_DIGEST_LENGTH]; | 293 | uint8_t results[SHA512_DIGEST_LENGTH]; |
293 | int save_errno = errno, e, m, pgs = getpagesize(), faster = 0, repeat; | 294 | int save_errno = errno, e, pgs = getpagesize(), faster = 0, repeat; |
294 | static int cnt; | 295 | static int cnt; |
295 | struct timespec ts; | 296 | struct timespec ts; |
296 | struct timeval tv; | 297 | struct timeval tv; |
@@ -300,7 +301,7 @@ getentropy_fallback(void *buf, size_t len) | |||
300 | SHA512_CTX ctx; | 301 | SHA512_CTX ctx; |
301 | static pid_t lastpid; | 302 | static pid_t lastpid; |
302 | pid_t pid; | 303 | pid_t pid; |
303 | size_t i, ii; | 304 | size_t i, ii, m; |
304 | char *p; | 305 | char *p; |
305 | 306 | ||
306 | pid = getpid(); | 307 | pid = getpid(); |
@@ -329,7 +330,7 @@ getentropy_fallback(void *buf, size_t len) | |||
329 | HX((pid = getsid(pid)) == -1, pid); | 330 | HX((pid = getsid(pid)) == -1, pid); |
330 | HX((pid = getppid()) == -1, pid); | 331 | HX((pid = getppid()) == -1, pid); |
331 | HX((pid = getpgid(0)) == -1, pid); | 332 | HX((pid = getpgid(0)) == -1, pid); |
332 | HX((m = getpriority(0, 0)) == -1, m); | 333 | HX((e = getpriority(0, 0)) == -1, e); |
333 | 334 | ||
334 | if (!faster) { | 335 | if (!faster) { |
335 | ts.tv_sec = 0; | 336 | ts.tv_sec = 0; |
@@ -341,9 +342,9 @@ getentropy_fallback(void *buf, size_t len) | |||
341 | HX(sigprocmask(SIG_BLOCK, NULL, &sigset) == -1, | 342 | HX(sigprocmask(SIG_BLOCK, NULL, &sigset) == -1, |
342 | sigset); | 343 | sigset); |
343 | 344 | ||
344 | HD(main); /* an addr in program */ | 345 | HF(main); /* an addr in program */ |
345 | HD(getentropy); /* an addr in this library */ | 346 | HF(getentropy); /* an addr in this library */ |
346 | HD(printf); /* an addr in libc */ | 347 | HF(printf); /* an addr in libc */ |
347 | p = (char *)&p; | 348 | p = (char *)&p; |
348 | HD(p); /* an addr on stack */ | 349 | HD(p); /* an addr on stack */ |
349 | p = (char *)&errno; | 350 | p = (char *)&errno; |
@@ -483,7 +484,7 @@ getentropy_fallback(void *buf, size_t len) | |||
483 | #endif | 484 | #endif |
484 | 485 | ||
485 | SHA512_Final(results, &ctx); | 486 | SHA512_Final(results, &ctx); |
486 | memcpy(buf + i, results, min(sizeof(results), len - i)); | 487 | memcpy((char *)buf + i, results, min(sizeof(results), len - i)); |
487 | i += min(sizeof(results), len - i); | 488 | i += min(sizeof(results), len - i); |
488 | } | 489 | } |
489 | memset(results, 0, sizeof results); | 490 | memset(results, 0, sizeof results); |
diff --git a/src/lib/libcrypto/crypto/getentropy_osx.c b/src/lib/libcrypto/crypto/getentropy_osx.c index 67583f9e13..c7e09c78a5 100644 --- a/src/lib/libcrypto/crypto/getentropy_osx.c +++ b/src/lib/libcrypto/crypto/getentropy_osx.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: getentropy_osx.c,v 1.3 2014/07/12 14:48:00 deraadt Exp $ */ | 1 | /* $OpenBSD: getentropy_osx.c,v 1.4 2014/07/12 20:41:47 wouter Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2014 Theo de Raadt <deraadt@openbsd.org> | 4 | * Copyright (c) 2014 Theo de Raadt <deraadt@openbsd.org> |
@@ -70,6 +70,7 @@ | |||
70 | 70 | ||
71 | #define HR(x, l) (SHA512_Update(&ctx, (char *)(x), (l))) | 71 | #define HR(x, l) (SHA512_Update(&ctx, (char *)(x), (l))) |
72 | #define HD(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (x))) | 72 | #define HD(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (x))) |
73 | #define HF(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (void*))) | ||
73 | 74 | ||
74 | int getentropy(void *buf, size_t len); | 75 | int getentropy(void *buf, size_t len); |
75 | 76 | ||
@@ -184,7 +185,7 @@ start: | |||
184 | } | 185 | } |
185 | for (i = 0; i < len; ) { | 186 | for (i = 0; i < len; ) { |
186 | size_t wanted = len - i; | 187 | size_t wanted = len - i; |
187 | ssize_t ret = read(fd, buf + i, wanted); | 188 | ssize_t ret = read(fd, (char *)buf + i, wanted); |
188 | 189 | ||
189 | if (ret == -1) { | 190 | if (ret == -1) { |
190 | if (errno == EAGAIN || errno == EINTR) | 191 | if (errno == EAGAIN || errno == EINTR) |
@@ -214,7 +215,7 @@ static int | |||
214 | getentropy_fallback(void *buf, size_t len) | 215 | getentropy_fallback(void *buf, size_t len) |
215 | { | 216 | { |
216 | uint8_t results[SHA512_DIGEST_LENGTH]; | 217 | uint8_t results[SHA512_DIGEST_LENGTH]; |
217 | int save_errno = errno, e, m, pgs = getpagesize(), faster = 0, repeat; | 218 | int save_errno = errno, e, pgs = getpagesize(), faster = 0, repeat; |
218 | static int cnt; | 219 | static int cnt; |
219 | struct timespec ts; | 220 | struct timespec ts; |
220 | struct timeval tv; | 221 | struct timeval tv; |
@@ -224,7 +225,7 @@ getentropy_fallback(void *buf, size_t len) | |||
224 | SHA512_CTX ctx; | 225 | SHA512_CTX ctx; |
225 | static pid_t lastpid; | 226 | static pid_t lastpid; |
226 | pid_t pid; | 227 | pid_t pid; |
227 | size_t i, ii; | 228 | size_t i, ii, m; |
228 | char *p; | 229 | char *p; |
229 | struct tcpstat tcpstat; | 230 | struct tcpstat tcpstat; |
230 | struct udpstat udpstat; | 231 | struct udpstat udpstat; |
@@ -279,7 +280,7 @@ getentropy_fallback(void *buf, size_t len) | |||
279 | HX((pid = getsid(pid)) == -1, pid); | 280 | HX((pid = getsid(pid)) == -1, pid); |
280 | HX((pid = getppid()) == -1, pid); | 281 | HX((pid = getppid()) == -1, pid); |
281 | HX((pid = getpgid(0)) == -1, pid); | 282 | HX((pid = getpgid(0)) == -1, pid); |
282 | HX((m = getpriority(0, 0)) == -1, m); | 283 | HX((e = getpriority(0, 0)) == -1, e); |
283 | 284 | ||
284 | if (!faster) { | 285 | if (!faster) { |
285 | ts.tv_sec = 0; | 286 | ts.tv_sec = 0; |
@@ -291,9 +292,9 @@ getentropy_fallback(void *buf, size_t len) | |||
291 | HX(sigprocmask(SIG_BLOCK, NULL, &sigset) == -1, | 292 | HX(sigprocmask(SIG_BLOCK, NULL, &sigset) == -1, |
292 | sigset); | 293 | sigset); |
293 | 294 | ||
294 | HD(main); /* an addr in program */ | 295 | HF(main); /* an addr in program */ |
295 | HD(getentropy); /* an addr in this library */ | 296 | HF(getentropy); /* an addr in this library */ |
296 | HD(printf); /* an addr in libc */ | 297 | HF(printf); /* an addr in libc */ |
297 | p = (char *)&p; | 298 | p = (char *)&p; |
298 | HD(p); /* an addr on stack */ | 299 | HD(p); /* an addr on stack */ |
299 | p = (char *)&errno; | 300 | p = (char *)&errno; |
@@ -413,7 +414,7 @@ getentropy_fallback(void *buf, size_t len) | |||
413 | } | 414 | } |
414 | 415 | ||
415 | SHA512_Final(results, &ctx); | 416 | SHA512_Final(results, &ctx); |
416 | memcpy(buf + i, results, min(sizeof(results), len - i)); | 417 | memcpy((char *)buf + i, results, min(sizeof(results), len - i)); |
417 | i += min(sizeof(results), len - i); | 418 | i += min(sizeof(results), len - i); |
418 | } | 419 | } |
419 | memset(results, 0, sizeof results); | 420 | memset(results, 0, sizeof results); |
diff --git a/src/lib/libcrypto/crypto/getentropy_solaris.c b/src/lib/libcrypto/crypto/getentropy_solaris.c index 83cc30aac2..cfd5b70475 100644 --- a/src/lib/libcrypto/crypto/getentropy_solaris.c +++ b/src/lib/libcrypto/crypto/getentropy_solaris.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: getentropy_solaris.c,v 1.3 2014/07/12 14:46:31 deraadt Exp $ */ | 1 | /* $OpenBSD: getentropy_solaris.c,v 1.4 2014/07/12 20:41:47 wouter Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2014 Theo de Raadt <deraadt@openbsd.org> | 4 | * Copyright (c) 2014 Theo de Raadt <deraadt@openbsd.org> |
@@ -60,6 +60,7 @@ | |||
60 | 60 | ||
61 | #define HR(x, l) (SHA512_Update(&ctx, (char *)(x), (l))) | 61 | #define HR(x, l) (SHA512_Update(&ctx, (char *)(x), (l))) |
62 | #define HD(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (x))) | 62 | #define HD(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (x))) |
63 | #define HF(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (void*))) | ||
63 | 64 | ||
64 | int getentropy(void *buf, size_t len); | 65 | int getentropy(void *buf, size_t len); |
65 | 66 | ||
@@ -194,7 +195,7 @@ start: | |||
194 | } | 195 | } |
195 | for (i = 0; i < len; ) { | 196 | for (i = 0; i < len; ) { |
196 | size_t wanted = len - i; | 197 | size_t wanted = len - i; |
197 | ssize_t ret = read(fd, buf + i, wanted); | 198 | ssize_t ret = read(fd, (char *)buf + i, wanted); |
198 | 199 | ||
199 | if (ret == -1) { | 200 | if (ret == -1) { |
200 | if (errno == EAGAIN || errno == EINTR) | 201 | if (errno == EAGAIN || errno == EINTR) |
@@ -243,7 +244,7 @@ static int | |||
243 | getentropy_fallback(void *buf, size_t len) | 244 | getentropy_fallback(void *buf, size_t len) |
244 | { | 245 | { |
245 | uint8_t results[SHA512_DIGEST_LENGTH]; | 246 | uint8_t results[SHA512_DIGEST_LENGTH]; |
246 | int save_errno = errno, e, m, pgs = getpagesize(), faster = 0, repeat; | 247 | int save_errno = errno, e, pgs = getpagesize(), faster = 0, repeat; |
247 | static int cnt; | 248 | static int cnt; |
248 | struct timespec ts; | 249 | struct timespec ts; |
249 | struct timeval tv; | 250 | struct timeval tv; |
@@ -254,7 +255,7 @@ getentropy_fallback(void *buf, size_t len) | |||
254 | SHA512_CTX ctx; | 255 | SHA512_CTX ctx; |
255 | static pid_t lastpid; | 256 | static pid_t lastpid; |
256 | pid_t pid; | 257 | pid_t pid; |
257 | size_t i, ii; | 258 | size_t i, ii, m; |
258 | char *p; | 259 | char *p; |
259 | 260 | ||
260 | pid = getpid(); | 261 | pid = getpid(); |
@@ -283,7 +284,7 @@ getentropy_fallback(void *buf, size_t len) | |||
283 | HX((pid = getsid(pid)) == -1, pid); | 284 | HX((pid = getsid(pid)) == -1, pid); |
284 | HX((pid = getppid()) == -1, pid); | 285 | HX((pid = getppid()) == -1, pid); |
285 | HX((pid = getpgid(0)) == -1, pid); | 286 | HX((pid = getpgid(0)) == -1, pid); |
286 | HX((m = getpriority(0, 0)) == -1, m); | 287 | HX((e = getpriority(0, 0)) == -1, e); |
287 | HX((getloadavg(loadavg, 3) == -1), loadavg); | 288 | HX((getloadavg(loadavg, 3) == -1), loadavg); |
288 | 289 | ||
289 | if (!faster) { | 290 | if (!faster) { |
@@ -296,9 +297,9 @@ getentropy_fallback(void *buf, size_t len) | |||
296 | HX(sigprocmask(SIG_BLOCK, NULL, &sigset) == -1, | 297 | HX(sigprocmask(SIG_BLOCK, NULL, &sigset) == -1, |
297 | sigset); | 298 | sigset); |
298 | 299 | ||
299 | HD(main); /* an addr in program */ | 300 | HF(main); /* an addr in program */ |
300 | HD(getentropy); /* an addr in this library */ | 301 | HF(getentropy); /* an addr in this library */ |
301 | HD(printf); /* an addr in libc */ | 302 | HF(printf); /* an addr in libc */ |
302 | p = (char *)&p; | 303 | p = (char *)&p; |
303 | HD(p); /* an addr on stack */ | 304 | HD(p); /* an addr on stack */ |
304 | p = (char *)&errno; | 305 | p = (char *)&errno; |
@@ -416,7 +417,7 @@ getentropy_fallback(void *buf, size_t len) | |||
416 | HD(cnt); | 417 | HD(cnt); |
417 | } | 418 | } |
418 | SHA512_Final(results, &ctx); | 419 | SHA512_Final(results, &ctx); |
419 | memcpy(buf + i, results, min(sizeof(results), len - i)); | 420 | memcpy((char *)buf + i, results, min(sizeof(results), len - i)); |
420 | i += min(sizeof(results), len - i); | 421 | i += min(sizeof(results), len - i); |
421 | } | 422 | } |
422 | memset(results, 0, sizeof results); | 423 | memset(results, 0, sizeof results); |