Call for testing: OpenSSH 6.8
Darren Tucker
dtucker at zip.com.au
Sat Feb 28 05:12:28 AEDT 2015
On Fri, Feb 27, 2015 at 7:12 AM, Michael Felt <aixtools at gmail.com> wrote:
>
> ld: 0711-317 ERROR: Undefined symbol: .va_copy
> ld: 0711-317 ERROR: Undefined symbol: .EC_KEY_free
>
Which object files contain references to those symbols? (running each
through "nm" should show you).
> ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more
> information.
>
> The error above is a bit unusual.
> 1) It has been seen before that with -qlanglvl=extc89 that va_copy is not
> found. This is clear, I think, from the stdarg.h file:
>
> +88 #ifdef _ISOC99_SOURCE
> +89 #define va_copy(__list1,__list2) ((void)(__list1 = __list2))
> +90 #endif
> +91
> +92 #endif /* _ANSI_C_SOURCE */
>
There's a definition of va_copy in defines.h which should be activated when
the platform doesn't have it:
#ifndef HAVE_VA_COPY
# ifdef HAVE___VA_COPY
# define va_copy(dest, src) __va_copy(dest, src)
# else
# define va_copy(dest, src) (dest) = (src)
# endif
#endif
I suspect there's a file which should have includes.h at the top but
doesn't.
I think the EC_KEY_free should be fixed by this:
diff --git a/kex.c b/kex.c
index 2618e22..cf04574 100644
--- a/kex.c
+++ b/kex.c
@@ -432,8 +432,10 @@ kex_free(struct kex *kex)
#ifdef WITH_OPENSSL
if (kex->dh)
DH_free(kex->dh);
+# ifdef OPENSSL_HAS_ECC
if (kex->ec_client_key)
EC_KEY_free(kex->ec_client_key);
I should be able to reproduce the problem by building against the exact
openssl version you have.
--
Darren Tucker (dtucker at zip.com.au)
GPG key 8FF4FA69 / D9A3 86E9 7EEE AF4B B2D4 37C9 C982 80C7 8FF4 FA69
Good judgement comes with experience. Unfortunately, the experience
usually comes from bad judgement.
More information about the openssh-unix-dev
mailing list