Hello,
while building openssl-1.0.1-stable-SNAP-20100920 from scratch
on OpenBSD-current i noticed that crypto/rand/randfile.c does
not compile because the local variable "ok" is neither declared
nor initialized, but only tested for its value.
After comparing to the (working) OpenBSD in-tree sources, i propose
the simple fix included below. With that fix, the build goes through,
the test suite succeeds and i was able to perform the checks i originally
intended, namely, checking that the OpenSSL bugs causing the Astaro
y2k38 certificate generation issues are fixed in OpenSSL 1.0.0.
Yours,
Ingo
--- crypto/rand/randfile.c.orig Tue Jun 15 19:25:11 2010
+++ crypto/rand/randfile.c Mon Sep 20 14:08:45 2010
@@ -269,6 +269,7 @@ err:
const char *RAND_file_name(char *buf, size_t size)
{
char *s=NULL;
+ int ok = 0;
#ifdef __OpenBSD__
struct stat sb;
#endif
@@ -297,6 +298,7 @@ const char *RAND_file_name(char *buf, size_t size)
BUF_strlcat(buf,"/",size);
#endif
BUF_strlcat(buf,RFILE,size);
+ ok = 1;
}
else
buf[0] = '\0'; /* no file name */
OpenSSL self-test report:
OpenSSL version: 1.0.1-dev
Last change: Add EC_GFp_nistp224_method(), a 64-bit optimized implem...
Options: --prefix=/usr/local/ischwarze
--openssldir=/usr/local/ischwarze/etc 386 no-gmp no-jpake no-krb5 no-md2 no-rc5
no-rfc3779 no-shared no-sse2 no-store no-threads no-zlib no-zlib-dynamic
static-engine
OS (uname): OpenBSD ischwarze00.intranet.astaro.de 4.8 GENERIC#126 i386
OS (config): i386-whatever-openbsd
Target (default): BSD-x86-elf
Target: BSD-x86-elf
Compiler: Target: i386-unknown-openbsd4.8
Configured with: OpenBSD/i386 system compiler
Thread model: posix
gcc version 4.2.1 20070719
Test passed.