mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-07-27 20:07:25 +00:00
aa7b7cd364
WARNING:
Some of the context lines in patches were ignored. This can lead to incorrectly applied patches.
The context lines in the patches can be updated with devtool:
devtool modify <recipe>
devtool finish --force-patch-refresh <recipe> <layer_path>
Then the updated patches and the source tree (in devtool's workspace)
should be reviewed to make sure the patches apply in the correct place
and don't introduce duplicate lines (which can, and does happen
when some of the context is ignored). Further information:
http://lists.openembedded.org/pipermail/openembedded-core/2018-March/148675.html
https://bugzilla.yoctoproject.org/show_bug.cgi?id=10450
Details:
checking file src/libstrongswan/plugins/openssl/openssl_diffie_hellman.c
Hunk #1 succeeded at 192 (offset 50 lines).
Hunk #2 succeeded at 255 with fuzz 1 (offset 58 lines).
checking file src/libstrongswan/plugins/openssl/openssl_diffie_hellman.h
Hunk #1 succeeded at 43 (offset -1 lines).
checking file src/libstrongswan/plugins/openssl/openssl_plugin.c
Hunk #1 succeeded at 609 (offset 221 lines).
Signed-off-by: Armin Kuster <akuster808@gmail.com>
100 lines
4.3 KiB
Diff
100 lines
4.3 KiB
Diff
From 9f97479373f3fceedc471074b81486d77a49618d Mon Sep 17 00:00:00 2001
|
|
From: "Roy.Li" <rongqing.li@windriver.com>
|
|
Date: Tue, 4 Mar 2014 14:38:42 +0800
|
|
Subject: [PATCH] fix the function parameter
|
|
|
|
Upstream-Status: pending
|
|
|
|
Original openssl_diffie_hellman_create has three parameters, but
|
|
it is reassigned a function pointer which has one parameter, and
|
|
is called with one parameter, which will lead to segment fault
|
|
on PPC, Now we simply correct the number of parameters.
|
|
|
|
#0 0x484d4aa0 in __GI_raise (sig=6)
|
|
at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
|
|
#1 0x484d9930 in __GI_abort () at abort.c:91
|
|
#2 0x10002064 in segv_handler (signal=11) at charon.c:224
|
|
#3 <signal handler called>
|
|
#4 0x48d89630 in openssl_diffie_hellman_create (group=MODP_1024_BIT, g=...,
|
|
p=<error reading variable: Cannot access memory at address 0x0>)
|
|
at openssl_diffie_hellman.c:143
|
|
#5 0x482c54f8 in create_dh (this=0x11ac6e68, group=MODP_1024_BIT)
|
|
at crypto/crypto_factory.c:358
|
|
#6 0x48375884 in create_dh (this=<optimized out>, group=<optimized out>)
|
|
at sa/keymat.c:132
|
|
#7 0x483843b8 in process_payloads (this=0x51400a78, message=<optimized
|
|
out>)
|
|
at sa/tasks/ike_init.c:200
|
|
#8 0x483844d0 in process_r (this=0x51400a78, message=0x51500778)
|
|
at sa/tasks/ike_init.c:319
|
|
#9 0x48374c9c in process_request (message=0x51500778, this=0x51400d20)
|
|
at sa/task_manager.c:870
|
|
#10 process_message (this=0x51400d20, msg=0x51500778) at
|
|
sa/task_manager.c:925
|
|
#11 0x4836c378 in process_message (this=0x514005f0, message=0x51500778)
|
|
at sa/ike_sa.c:1317
|
|
#12 0x48362270 in execute (this=0x515008d0)
|
|
at processing/jobs/process_message_job.c:74
|
|
|
|
Signed-off-by: Roy.Li <rongqing.li@windriver.com>
|
|
|
|
---
|
|
src/libstrongswan/plugins/openssl/openssl_diffie_hellman.c | 8 +++++++-
|
|
src/libstrongswan/plugins/openssl/openssl_diffie_hellman.h | 4 +++-
|
|
src/libstrongswan/plugins/openssl/openssl_plugin.c | 1 +
|
|
3 files changed, 11 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.c b/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.c
|
|
index 8e9c118..a73b038 100644
|
|
--- a/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.c
|
|
+++ b/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.c
|
|
@@ -192,7 +192,7 @@ METHOD(diffie_hellman_t, destroy, void,
|
|
/*
|
|
* Described in header.
|
|
*/
|
|
-openssl_diffie_hellman_t *openssl_diffie_hellman_create(
|
|
+openssl_diffie_hellman_t *openssl_diffie_hellman_create_custom(
|
|
diffie_hellman_group_t group, ...)
|
|
{
|
|
private_openssl_diffie_hellman_t *this;
|
|
@@ -255,5 +255,11 @@ openssl_diffie_hellman_t *openssl_diffie_hellman_create(
|
|
DBG2(DBG_LIB, "size of DH secret exponent: %d bits", BN_num_bits(privkey));
|
|
return &this->public;
|
|
}
|
|
+openssl_diffie_hellman_t *openssl_diffie_hellman_create( diffie_hellman_group_t group)
|
|
+{
|
|
+ chunk_t g;
|
|
+ chunk_t p;
|
|
+ openssl_diffie_hellman_create_custom(group, g, p);
|
|
+}
|
|
|
|
#endif /* OPENSSL_NO_DH */
|
|
diff --git a/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.h b/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.h
|
|
index 5de5520..22586e0 100644
|
|
--- a/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.h
|
|
+++ b/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.h
|
|
@@ -43,8 +43,10 @@ struct openssl_diffie_hellman_t {
|
|
* @param ... expects generator and prime as chunk_t if MODP_CUSTOM
|
|
* @return openssl_diffie_hellman_t object, NULL if not supported
|
|
*/
|
|
-openssl_diffie_hellman_t *openssl_diffie_hellman_create(
|
|
+openssl_diffie_hellman_t *openssl_diffie_hellman_create_custom(
|
|
diffie_hellman_group_t group, ...);
|
|
+openssl_diffie_hellman_t *openssl_diffie_hellman_create(
|
|
+ diffie_hellman_group_t group);
|
|
|
|
#endif /** OPENSSL_DIFFIE_HELLMAN_H_ @}*/
|
|
|
|
diff --git a/src/libstrongswan/plugins/openssl/openssl_plugin.c b/src/libstrongswan/plugins/openssl/openssl_plugin.c
|
|
index 8b0a7c5..114d575 100644
|
|
--- a/src/libstrongswan/plugins/openssl/openssl_plugin.c
|
|
+++ b/src/libstrongswan/plugins/openssl/openssl_plugin.c
|
|
@@ -609,6 +609,7 @@ METHOD(plugin_t, get_features, int,
|
|
PLUGIN_PROVIDE(DH, MODP_1024_BIT),
|
|
PLUGIN_PROVIDE(DH, MODP_1024_160),
|
|
PLUGIN_PROVIDE(DH, MODP_768_BIT),
|
|
+ PLUGIN_REGISTER(DH, openssl_diffie_hellman_create_custom),
|
|
PLUGIN_PROVIDE(DH, MODP_CUSTOM),
|
|
#endif
|
|
#ifndef OPENSSL_NO_RSA
|