Recent openssl is required for OPENSSL_free [Re: Please test snapshots for 3.0 release] (fwd)
Damien Miller
djm at mindrot.org
Tue Oct 30 22:25:21 EST 2001
On Sun, 21 Oct 2001, Lutz Jaenicke wrote:
> On Sat, Oct 20, 2001 at 11:41:24PM +0300, Pekka Savola wrote:
> > 3) Building appears to rely on the existance of rather recent openssl.
> > This is good from security perspective, but will make building with e.g.
> > 0.9.5a impossible. If this is intended to be requirement (there _have_
> > been security fixes), at least Requires: openssl >= 0.9.6 or whatever
> > should be added and the requirement noted in the docs.
> >
> > The build failed on my RHL62 with:
> >
> > ./libssh.a(key.o): In function `write_bignum':
> > key.o(.text+0x7f7): undefined reference to `OPENSSL_free'
>
> I just had a look into the source. Since BN_bn2dec() really allocates
> the buffer itself (using OPENSSL_malloc() in recent versions), there is
> nothing an application writer can do with respect to this inconsistency.
> (For all OpenSSL special data types, TYPE_new() and TYPE_free() exist.)
> The only thing that could be done is to query the version defined in
> opensslv.h and based on that make a #if OPENSSL_VERSION_NUMBER construct.
Can people try this patch?
Index: defines.h
===================================================================
RCS file: /var/cvs/openssh/defines.h,v
retrieving revision 1.74
diff -u -r1.74 defines.h
--- defines.h 2001/10/30 02:50:40 1.74
+++ defines.h 2001/10/30 11:23:51
@@ -45,6 +45,7 @@
#include <unistd.h> /* For STDIN_FILENO, etc */
#include <termios.h> /* Struct winsize */
#include <fcntl.h> /* For O_NONBLOCK */
+#include <openssl/opensslv.h> /* For OPENSSL_VERSION_NUMBER */
/* *-*-nto-qnx needs these headers for strcasecmp and LASTLOG_FILE respectively */
#ifdef HAVE_STRINGS_H
@@ -448,6 +449,11 @@
#ifndef GETPGRP_VOID
# define getpgrp() getpgrp(0)
+#endif
+
+/* OPENSSL_free() is only available in OpenSSL 0.9.6 onwards */
+#if !defined(OPENSSL_VERSION_NUMBER) || (OPENSSL_VERSION_NUMBER < 0x0090600f)
+# define OPENSSL_free(x) free(x)
#endif
/*
-d
--
| By convention there is color, \\ Damien Miller <djm at mindrot.org>
| By convention sweetness, By convention bitterness, \\ www.mindrot.org
| But in reality there are atoms and space - Democritus (c. 400 BCE)
More information about the openssh-unix-dev
mailing list