diff options
Diffstat (limited to 'meta-openembedded/meta-networking/recipes-support')
37 files changed, 228 insertions, 2603 deletions
diff --git a/meta-openembedded/meta-networking/recipes-support/ipcalc/ipcalc/0001-Makefile-pass-extra-linker-flags.patch b/meta-openembedded/meta-networking/recipes-support/ipcalc/ipcalc/0001-Makefile-pass-extra-linker-flags.patch index 38d306475e..e95b6f993f 100644 --- a/meta-openembedded/meta-networking/recipes-support/ipcalc/ipcalc/0001-Makefile-pass-extra-linker-flags.patch +++ b/meta-openembedded/meta-networking/recipes-support/ipcalc/ipcalc/0001-Makefile-pass-extra-linker-flags.patch @@ -1,4 +1,4 @@ -From fd80c0599083013a1b583feba5d7473f52b35938 Mon Sep 17 00:00:00 2001 +From 7fd0e0b88df692dfc67335f235a1bb74854a0498 Mon Sep 17 00:00:00 2001 From: Mariia Movchan <mmovchan@cisco.com> Date: Tue, 6 Mar 2018 16:03:39 +0200 Subject: [PATCH] Makefile: pass extra linker flags @@ -9,16 +9,17 @@ ERROR: QA Issue: No GNU_HASH in the elf binary Upstream-Status: Pending Signed-off-by: Mariia Movchan <mmovchan@cisco.com> + --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile -index 8beff8f..047f02a 100644 +index 54569c1..798988f 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ LIBS?= - VERSION=0.2.2 + VERSION=0.2.3 CC?=gcc CFLAGS?=-O2 -g -Wall -LDFLAGS=$(LIBS) @@ -26,6 +27,3 @@ index 8beff8f..047f02a 100644 ifeq ($(USE_GEOIP),yes) ifeq ($(USE_DYN_GEOIP),yes) --- -2.15.1 - diff --git a/meta-openembedded/meta-networking/recipes-support/ipcalc/ipcalc_0.2.2.bb b/meta-openembedded/meta-networking/recipes-support/ipcalc/ipcalc_0.2.3.bb index b45642404c..ad0ec27001 100644 --- a/meta-openembedded/meta-networking/recipes-support/ipcalc/ipcalc_0.2.2.bb +++ b/meta-openembedded/meta-networking/recipes-support/ipcalc/ipcalc_0.2.3.bb @@ -7,7 +7,7 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" S = "${WORKDIR}/git" -SRCREV = "8348808a7869ca8f25a5b5deeaa418c2f6d52758" +SRCREV = "c3ee70c878b9c5833a77a1f339f1ca4dc6f225c5" SRC_URI = "\ git://github.com/nmav/ipcalc.git;protocol=https; \ file://0001-Makefile-pass-extra-linker-flags.patch \ diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Disable-gcc8-specific-warnings.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Disable-gcc8-specific-warnings.patch deleted file mode 100644 index 11a9103935..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Disable-gcc8-specific-warnings.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 282d492e4cab7b4d9c7321f4c0c55b615948e280 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 11 May 2018 14:09:17 -0700 -Subject: [PATCH] Disable gcc8 specific warnings - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/libipsec/ipsec_dump_policy.c | 5 +++++ - src/libipsec/pfkey_dump.c | 5 +++++ - src/racoon/isakmp.c | 11 ++++++++++- - 3 files changed, 20 insertions(+), 1 deletion(-) - -diff --git a/src/libipsec/ipsec_dump_policy.c b/src/libipsec/ipsec_dump_policy.c -index 4d0eb77..c3fc842 100644 ---- a/src/libipsec/ipsec_dump_policy.c -+++ b/src/libipsec/ipsec_dump_policy.c -@@ -275,6 +275,10 @@ ipsec_dump_policy1(policy, delimiter, withports) - return buf; - } - -+#pragma GCC diagnostic push -+#if defined(__GNUC__) && (__GNUC__ >= 8) -+#pragma GCC diagnostic ignored "-Wformat-truncation" -+#endif - static char * - ipsec_dump_ipsecrequest(buf, len, xisr, bound, withports) - char *buf; -@@ -419,3 +423,4 @@ set_address(buf, len, sa, withports) - - return buf; - } -+#pragma GCC diagnostic pop -diff --git a/src/libipsec/pfkey_dump.c b/src/libipsec/pfkey_dump.c -index 4627ebc..451e535 100644 ---- a/src/libipsec/pfkey_dump.c -+++ b/src/libipsec/pfkey_dump.c -@@ -691,6 +691,10 @@ str_ipport(sa) - /* - * set "/prefix[port number]" to buffer. - */ -+#pragma GCC diagnostic push -+#if defined(__GNUC__) && (__GNUC__ >= 8) -+#pragma GCC diagnostic ignored "-Wformat-truncation" -+#endif - static char * - str_prefport(family, pref, port, ulp) - u_int family, pref, port, ulp; -@@ -735,6 +739,7 @@ str_prefport(family, pref, port, ulp) - - return buf; - } -+#pragma GCC diagnostic pop - - static void - str_upperspec(ulp, p1, p2) -diff --git a/src/racoon/isakmp.c b/src/racoon/isakmp.c -index 7ff53a3..4addf24 100644 ---- a/src/racoon/isakmp.c -+++ b/src/racoon/isakmp.c -@@ -3124,7 +3124,12 @@ script_hook(iph1, script) - #endif - - /* local address */ -+#pragma GCC diagnostic push -+#if defined(__GNUC__) && (__GNUC__ >= 8) -+#pragma GCC diagnostic ignored "-Wstringop-truncation" -+#endif - GETNAMEINFO(iph1->local, addrstr, portstr); -+#pragma GCC diagnostic pop - - if (script_env_append(&envp, &envc, "LOCAL_ADDR", addrstr) != 0) { - plog(LLV_ERROR, LOCATION, NULL, "Cannot set LOCAL_ADDR\n"); -@@ -3138,8 +3143,12 @@ script_hook(iph1, script) - - /* Peer address */ - if (iph1->remote != NULL) { -+#pragma GCC diagnostic push -+#if defined(__GNUC__) && (__GNUC__ >= 8) -+#pragma GCC diagnostic ignored "-Wstringop-truncation" -+#endif - GETNAMEINFO(iph1->remote, addrstr, portstr); -- -+#pragma GCC diagnostic pop - if (script_env_append(&envp, &envc, - "REMOTE_ADDR", addrstr) != 0) { - plog(LLV_ERROR, LOCATION, NULL, diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-build-with-clang.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-build-with-clang.patch deleted file mode 100644 index 5c09147450..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-build-with-clang.patch +++ /dev/null @@ -1,115 +0,0 @@ -From 9135ca401186fb14e5e5110bbb04d1ccc480360a Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 15 Nov 2016 04:15:44 +0000 -Subject: [PATCH] Fix build with clang - -Fixes for following errors found by clang - -src/racoon/eaytest.c:316:6: error: comparison of array 'dnstr_w1' not equal to a null pointer is always true - [-Werror,-Wtautological-pointer-compare] - if (dnstr_w1 != NULL) { - ^~~~~~~~ ~~~~ -src/racoon/eaytest.c:326:6: error: comparison of array 'dnstr_w1' not equal to a null pointer is always true - [-Werror,-Wtautological-pointer-compare] - if (dnstr_w1 != NULL) { - ^~~~~~~~ ~~~~ - -src/racoon/isakmp.c:1134:11: error: promoted type 'int' of K&R function parameter is not compatible with the - parameter type 'u_int8_t' (aka 'unsigned char') declared in a previous prototype [-Werror,-Wknr-promoted-parameter] - u_int8_t etype; - ^ -src/racoon/isakmp.c:184:48: note: previous declaration is here - struct sockaddr *, struct sockaddr *, u_int8_t)); - ^ - 1 error generated. - -src/racoon/racoonctl.c:1457:15: error: incompatible pointer types passing 'struct evt_async *' to parameter of type - 'caddr_t' (aka 'char *') [-Werror,-Wincompatible-pointer-types] - print_cfg(ec, len); - ^~ - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/racoon/eaytest.c | 4 ++-- - src/racoon/isakmp.c | 10 +++++----- - src/racoon/racoonctl.c | 7 +++---- - 3 files changed, 10 insertions(+), 11 deletions(-) - -diff --git a/src/racoon/eaytest.c b/src/racoon/eaytest.c -index 1474bdc..d609e4f 100644 ---- a/src/racoon/eaytest.c -+++ b/src/racoon/eaytest.c -@@ -313,7 +313,7 @@ certtest(ac, av) - - printf("exact match: succeed.\n"); - -- if (dnstr_w1 != NULL) { -+ if (dnstr_w1[0] != '\0') { - asn1dn = eay_str2asn1dn(dnstr_w1, strlen(dnstr_w1)); - if (asn1dn == NULL || asn1dn->l == asn1dn0.l) - errx(1, "asn1dn length wrong for wildcard 1\n"); -@@ -323,7 +323,7 @@ certtest(ac, av) - printf("wildcard 1 match: succeed.\n"); - } - -- if (dnstr_w1 != NULL) { -+ if (dnstr_w1[0] != '\0') { - asn1dn = eay_str2asn1dn(dnstr_w2, strlen(dnstr_w2)); - if (asn1dn == NULL || asn1dn->l == asn1dn0.l) - errx(1, "asn1dn length wrong for wildcard 2\n"); -diff --git a/src/racoon/isakmp.c b/src/racoon/isakmp.c -index 2672f7a..da7ebe8 100644 ---- a/src/racoon/isakmp.c -+++ b/src/racoon/isakmp.c -@@ -567,7 +567,7 @@ isakmp_main(msg, remote, local) - - /* it must be responder's 1st exchange. */ - if (isakmp_ph1begin_r(msg, remote, local, -- isakmp->etype) < 0) -+ (u_int8_t)isakmp->etype) < 0) - return -1; - break; - -@@ -1128,10 +1128,10 @@ isakmp_ph1begin_i(rmconf, remote, local) - - /* new negotiation of phase 1 for responder */ - static int --isakmp_ph1begin_r(msg, remote, local, etype) -- vchar_t *msg; -- struct sockaddr *remote, *local; -- u_int8_t etype; -+isakmp_ph1begin_r(vchar_t *msg, -+ struct sockaddr *remote, -+ struct sockaddr *local, -+ u_int8_t etype) - { - struct isakmp *isakmp = (struct isakmp *)msg->v; - struct ph1handle *iph1; -diff --git a/src/racoon/racoonctl.c b/src/racoon/racoonctl.c -index da28ecd..bbf068e 100644 ---- a/src/racoon/racoonctl.c -+++ b/src/racoon/racoonctl.c -@@ -1299,9 +1299,8 @@ print_evt(evtdump) - * Print ISAKMP mode config info (IP and banner) - */ - void --print_cfg(buf, len) -- caddr_t buf; -- int len; -+print_cfg(caddr_t buf, -+ int len) - { - struct evt_async *evtdump = (struct evt_async *)buf; - struct isakmp_data *attr; -@@ -1454,7 +1453,7 @@ handle_recv(combuf) - else if (evt_quit_event == ec->ec_type) { - switch (ec->ec_type) { - case EVT_PHASE1_MODE_CFG: -- print_cfg(ec, len); -+ print_cfg((caddr_t)ec, len); - break; - default: - print_evt(ec); --- -1.9.1 - diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-header-issues-found-with-musl-libc.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-header-issues-found-with-musl-libc.patch deleted file mode 100644 index 630ecdb5f4..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-header-issues-found-with-musl-libc.patch +++ /dev/null @@ -1,249 +0,0 @@ -From 7d9585be093c9cb2428b373c0b0088bb778942d0 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 20 Mar 2017 21:37:47 -0700 -Subject: [PATCH] Fix header issues found with musl libc - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/libipsec/ipsec_strerror.h | 3 +++ - src/libipsec/libpfkey.h | 4 +++- - src/racoon/admin.c | 2 +- - src/racoon/backupsa.c | 6 +++--- - src/racoon/cftoken.l | 4 ++++ - src/racoon/logger.h | 3 +++ - src/racoon/misc.h | 3 +++ - src/racoon/missing/crypto/sha2/sha2.h | 3 +++ - src/racoon/netdb_dnssec.h | 3 +++ - src/racoon/pfkey.c | 1 - - src/racoon/plog.h | 2 ++ - src/racoon/str2val.h | 3 +++ - src/racoon/vmbuf.h | 3 +++ - src/setkey/extern.h | 3 ++- - src/setkey/setkey.c | 1 - - 15 files changed, 36 insertions(+), 8 deletions(-) - -diff --git a/src/libipsec/ipsec_strerror.h b/src/libipsec/ipsec_strerror.h -index 2b4264f..dac66a1 100644 ---- a/src/libipsec/ipsec_strerror.h -+++ b/src/libipsec/ipsec_strerror.h -@@ -34,6 +34,9 @@ - #ifndef _IPSEC_STRERROR_H - #define _IPSEC_STRERROR_H - -+#undef __P -+#define __P(protos) protos /* ANSI C prototypes */ -+ - extern int __ipsec_errcode; - extern void __ipsec_set_strerror __P((const char *)); - -diff --git a/src/libipsec/libpfkey.h b/src/libipsec/libpfkey.h -index 61d2f2a..f7991b7 100644 ---- a/src/libipsec/libpfkey.h -+++ b/src/libipsec/libpfkey.h -@@ -34,6 +34,9 @@ - #ifndef _LIBPFKEY_H - #define _LIBPFKEY_H - -+#undef __P -+#define __P(protos) protos /* ANSI C prototypes */ -+ - #ifndef KAME_LIBPFKEY_H - #define KAME_LIBPFKEY_H - -@@ -43,7 +46,6 @@ - - #define PRIORITY_OFFSET_POSITIVE_MAX 0x3fffffff - #define PRIORITY_OFFSET_NEGATIVE_MAX 0x40000000 -- - struct sadb_msg; - extern void pfkey_sadump __P((struct sadb_msg *)); - extern void pfkey_sadump_withports __P((struct sadb_msg *)); -diff --git a/src/racoon/admin.c b/src/racoon/admin.c -index 4b1875b..03ea3f8 100644 ---- a/src/racoon/admin.c -+++ b/src/racoon/admin.c -@@ -36,7 +36,6 @@ - #include <sys/types.h> - #include <sys/param.h> - #include <sys/socket.h> --#include <sys/signal.h> - #include <sys/stat.h> - #include <sys/un.h> - -@@ -46,6 +45,7 @@ - #include PATH_IPSEC_H - - -+#include <signal.h> - #include <stdlib.h> - #include <stdio.h> - #include <string.h> -diff --git a/src/racoon/backupsa.c b/src/racoon/backupsa.c -index 82d74ca..95307ca 100644 ---- a/src/racoon/backupsa.c -+++ b/src/racoon/backupsa.c -@@ -276,9 +276,9 @@ do { \ - GETNEXTNUM(sa_args.a_keylen, strtoul); - GETNEXTNUM(sa_args.flags, strtoul); - GETNEXTNUM(sa_args.l_alloc, strtoul); -- GETNEXTNUM(sa_args.l_bytes, strtouq); -- GETNEXTNUM(sa_args.l_addtime, strtouq); -- GETNEXTNUM(sa_args.l_usetime, strtouq); -+ GETNEXTNUM(sa_args.l_bytes, strtoull); -+ GETNEXTNUM(sa_args.l_addtime, strtoull); -+ GETNEXTNUM(sa_args.l_usetime, strtoull); - GETNEXTNUM(sa_args.seq, strtoul); - - #undef GETNEXTNUM -diff --git a/src/racoon/cftoken.l b/src/racoon/cftoken.l -index 1701922..787f4a9 100644 ---- a/src/racoon/cftoken.l -+++ b/src/racoon/cftoken.l -@@ -77,6 +77,10 @@ - - #include "cfparse.h" - -+#ifndef GLOB_TILDE -+#define GLOB_TILDE 0 -+#endif -+ - int yyerrorcount = 0; - - #if defined(YIPS_DEBUG) -diff --git a/src/racoon/logger.h b/src/racoon/logger.h -index 3fd3e94..67af5f0 100644 ---- a/src/racoon/logger.h -+++ b/src/racoon/logger.h -@@ -34,6 +34,9 @@ - #ifndef _LOGGER_H - #define _LOGGER_H - -+#undef __P -+#define __P(protos) protos /* ANSI C prototypes */ -+ - struct log { - int head; - int siz; -diff --git a/src/racoon/misc.h b/src/racoon/misc.h -index 3e758d9..30d9825 100644 ---- a/src/racoon/misc.h -+++ b/src/racoon/misc.h -@@ -34,6 +34,9 @@ - #ifndef _MISC_H - #define _MISC_H - -+#undef __P -+#define __P(protos) protos /* ANSI C prototypes */ -+ - #define BIT2STR(b) bit2str(b, sizeof(b)<<3) - - #ifdef HAVE_FUNC_MACRO -diff --git a/src/racoon/missing/crypto/sha2/sha2.h b/src/racoon/missing/crypto/sha2/sha2.h -index 42bcc2a..c043dfe 100644 ---- a/src/racoon/missing/crypto/sha2/sha2.h -+++ b/src/racoon/missing/crypto/sha2/sha2.h -@@ -40,6 +40,9 @@ - #ifndef __SHA2_H__ - #define __SHA2_H__ - -+#undef __P -+#define __P(protos) protos /* ANSI C prototypes */ -+ - #ifdef __cplusplus - extern "C" { - #endif -diff --git a/src/racoon/netdb_dnssec.h b/src/racoon/netdb_dnssec.h -index a11209d..98fd813 100644 ---- a/src/racoon/netdb_dnssec.h -+++ b/src/racoon/netdb_dnssec.h -@@ -34,6 +34,9 @@ - #ifndef _NETDB_DNSSEC_H - #define _NETDB_DNSSEC_H - -+#undef __P -+#define __P(protos) protos /* ANSI C prototypes */ -+ - #ifndef T_CERT - #define T_CERT 37 /* defined by RFC2538 section 2 */ - #endif -diff --git a/src/racoon/pfkey.c b/src/racoon/pfkey.c -index 8f26c19..a06c30e 100644 ---- a/src/racoon/pfkey.c -+++ b/src/racoon/pfkey.c -@@ -59,7 +59,6 @@ - #include <sys/param.h> - #include <sys/socket.h> - #include <sys/queue.h> --#include <sys/sysctl.h> - - #include <net/route.h> - #include <net/pfkeyv2.h> -diff --git a/src/racoon/plog.h b/src/racoon/plog.h -index ed43c8b..920c850 100644 ---- a/src/racoon/plog.h -+++ b/src/racoon/plog.h -@@ -34,6 +34,8 @@ - #ifndef _PLOG_H - #define _PLOG_H - -+#undef __P -+#define __P(protos) protos /* ANSI C prototypes */ - #ifdef HAVE_STDARG_H - #include <stdarg.h> - #else -diff --git a/src/racoon/str2val.h b/src/racoon/str2val.h -index 4a7cec1..d3d698e 100644 ---- a/src/racoon/str2val.h -+++ b/src/racoon/str2val.h -@@ -34,6 +34,9 @@ - #ifndef _STR2VAL_H - #define _STR2VAL_H - -+#undef __P -+#define __P(protos) protos /* ANSI C prototypes */ -+ - extern caddr_t val2str __P((const char *, size_t)); - extern char *str2val __P((const char *, int, size_t *)); - -diff --git a/src/racoon/vmbuf.h b/src/racoon/vmbuf.h -index 3f2f4ea..8287a00 100644 ---- a/src/racoon/vmbuf.h -+++ b/src/racoon/vmbuf.h -@@ -34,6 +34,9 @@ - #ifndef _VMBUF_H - #define _VMBUF_H - -+#undef __P -+#define __P(protos) protos /* ANSI C prototypes */ -+ - /* - * bp v - * v v -diff --git a/src/setkey/extern.h b/src/setkey/extern.h -index 6f439fa..a1d9d14 100644 ---- a/src/setkey/extern.h -+++ b/src/setkey/extern.h -@@ -1,6 +1,7 @@ - /* $NetBSD: extern.h,v 1.5 2009/03/06 11:45:03 tteras Exp $ */ - -- -+#undef __P -+#define __P(protos) protos /* ANSI C prototypes */ - - void parse_init __P((void)); - int parse __P((FILE **)); -diff --git a/src/setkey/setkey.c b/src/setkey/setkey.c -index c400faa..51f8b75 100644 ---- a/src/setkey/setkey.c -+++ b/src/setkey/setkey.c -@@ -40,7 +40,6 @@ - #include <sys/socket.h> - #include <sys/time.h> - #include <sys/stat.h> --#include <sys/sysctl.h> - #include <err.h> - #include <netinet/in.h> - #include <net/pfkeyv2.h> --- -2.12.0 - diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-ipsec-tools-add-openssl-1.1-support.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-ipsec-tools-add-openssl-1.1-support.patch deleted file mode 100644 index 228274436a..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-ipsec-tools-add-openssl-1.1-support.patch +++ /dev/null @@ -1,1086 +0,0 @@ -From b572350a922187d43dd4629c3b43e19979fae3ef Mon Sep 17 00:00:00 2001 -From: Eneas U de Queiroz <cote2004-github@yahoo.com> -Date: Tue, 25 Sep 2018 15:30:04 +0800 -Subject: [PATCH] ipsec-tools: add openssl 1.1 support - -To: equeiroz@troianet.com.br - -This patch updates the calls to openssl 1.1 API, and adds a -compatibility layer so it compiles with (at least) openssl 1.0.2, I -haven't tested it with lower versions, but all that's needed is to edit -the openssl_compat.* files and add the missing functions there--they're -usually trivial. - -Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com> - -Upstream-Status: Submitted [https://sourceforge.net/p/ipsec-tools/mailman/message/36327963/] -https://github.com/openwrt/packages/blob/master/net/ipsec-tools/patches/015-openssl-1.1.patch - -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - src/racoon/Makefile.am | 10 +-- - src/racoon/algorithm.c | 6 +- - src/racoon/crypto_openssl.c | 197 +++++++++++++++++++++------------------- - src/racoon/crypto_openssl.h | 2 +- - src/racoon/eaytest.c | 7 +- - src/racoon/ipsec_doi.c | 2 +- - src/racoon/openssl_compat.c | 213 ++++++++++++++++++++++++++++++++++++++++++++ - src/racoon/openssl_compat.h | 45 ++++++++++ - src/racoon/plainrsa-gen.c | 41 +++++---- - src/racoon/prsa_par.y | 28 ++++-- - src/racoon/rsalist.c | 5 +- - 11 files changed, 430 insertions(+), 126 deletions(-) - create mode 100644 src/racoon/openssl_compat.c - create mode 100644 src/racoon/openssl_compat.h - -diff --git a/src/racoon/Makefile.am b/src/racoon/Makefile.am -index 0662957..272b009 100644 ---- a/src/racoon/Makefile.am -+++ b/src/racoon/Makefile.am -@@ -4,7 +4,7 @@ sbin_PROGRAMS = racoon racoonctl plainrsa-gen - noinst_PROGRAMS = eaytest - include_racoon_HEADERS = racoonctl.h var.h vmbuf.h misc.h gcmalloc.h admin.h \ - schedule.h sockmisc.h isakmp_var.h isakmp.h isakmp_xauth.h \ -- isakmp_cfg.h isakmp_unity.h ipsec_doi.h evt.h -+ isakmp_cfg.h isakmp_unity.h ipsec_doi.h evt.h openssl_compat.h - lib_LTLIBRARIES = libracoon.la - - adminsockdir=${localstatedir}/racoon -@@ -32,7 +32,7 @@ racoon_SOURCES = \ - gssapi.c dnssec.c getcertsbyname.c privsep.c \ - pfkey.c admin.c evt.c ipsec_doi.c oakley.c grabmyaddr.c vendorid.c \ - policy.c localconf.c remoteconf.c crypto_openssl.c algorithm.c \ -- proposal.c sainfo.c strnames.c \ -+ openssl_compat.c proposal.c sainfo.c strnames.c \ - plog.c logger.c schedule.c str2val.c \ - safefile.c backupsa.c genlist.c rsalist.c \ - cftoken.l cfparse.y prsa_tok.l prsa_par.y -@@ -51,12 +51,12 @@ libracoon_la_SOURCES = kmpstat.c vmbuf.c sockmisc.c misc.c - libracoon_la_CFLAGS = -DNOUSE_PRIVSEP $(AM_CFLAGS) - - plainrsa_gen_SOURCES = plainrsa-gen.c plog.c \ -- crypto_openssl.c logger.c -+ crypto_openssl.c logger.c openssl_compat.c - EXTRA_plainrsa_gen_SOURCES = $(MISSING_ALGOS) - plainrsa_gen_LDADD = $(CRYPTOBJS) vmbuf.o misc.o - plainrsa_gen_DEPENDENCIES = $(CRYPTOBJS) vmbuf.o misc.o - --eaytest_SOURCES = eaytest.c plog.c logger.c -+eaytest_SOURCES = eaytest.c plog.c logger.c openssl_compat.c - EXTRA_eaytest_SOURCES = missing/crypto/sha2/sha2.c - eaytest_LDADD = crypto_openssl_test.o vmbuf.o str2val.o misc_noplog.o \ - $(CRYPTOBJS) -@@ -75,7 +75,7 @@ noinst_HEADERS = \ - debugrm.h isakmp.h misc.h sainfo.h \ - dhgroup.h isakmp_agg.h netdb_dnssec.h schedule.h \ - isakmp_cfg.h isakmp_xauth.h isakmp_unity.h isakmp_frag.h \ -- throttle.h privsep.h \ -+ throttle.h privsep.h openssl_compat.h \ - cfparse_proto.h cftoken_proto.h genlist.h rsalist.h \ - missing/crypto/sha2/sha2.h missing/crypto/rijndael/rijndael_local.h \ - missing/crypto/rijndael/rijndael-api-fst.h \ -diff --git a/src/racoon/algorithm.c b/src/racoon/algorithm.c -index 3fd50f6..66c874b 100644 ---- a/src/racoon/algorithm.c -+++ b/src/racoon/algorithm.c -@@ -128,7 +128,7 @@ static struct enc_algorithm oakley_encdef[] = { - { "aes", algtype_aes, OAKLEY_ATTR_ENC_ALG_AES, 16, - eay_aes_encrypt, eay_aes_decrypt, - eay_aes_weakkey, eay_aes_keylen, }, --#ifdef HAVE_OPENSSL_CAMELLIA_H -+#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA) - { "camellia", algtype_camellia, OAKLEY_ATTR_ENC_ALG_CAMELLIA, 16, - eay_camellia_encrypt, eay_camellia_decrypt, - eay_camellia_weakkey, eay_camellia_keylen, }, -@@ -168,7 +168,7 @@ static struct enc_algorithm ipsec_encdef[] = { - { "twofish", algtype_twofish, IPSECDOI_ESP_TWOFISH, 16, - NULL, NULL, - NULL, eay_twofish_keylen, }, --#ifdef HAVE_OPENSSL_IDEA_H -+#if defined(HAVE_OPENSSL_IDEA_H) && ! defined(OPENSSL_NO_IDEA) - { "3idea", algtype_3idea, IPSECDOI_ESP_3IDEA, 8, - NULL, NULL, - NULL, NULL, }, -@@ -179,7 +179,7 @@ static struct enc_algorithm ipsec_encdef[] = { - { "rc4", algtype_rc4, IPSECDOI_ESP_RC4, 8, - NULL, NULL, - NULL, NULL, }, --#ifdef HAVE_OPENSSL_CAMELLIA_H -+#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA) - { "camellia", algtype_camellia, IPSECDOI_ESP_CAMELLIA, 16, - NULL, NULL, - NULL, eay_camellia_keylen, }, -diff --git a/src/racoon/crypto_openssl.c b/src/racoon/crypto_openssl.c -index 55b076a..8fb358f 100644 ---- a/src/racoon/crypto_openssl.c -+++ b/src/racoon/crypto_openssl.c -@@ -90,6 +90,7 @@ - #endif - #endif - #include "plog.h" -+#include "openssl_compat.h" - - #define USE_NEW_DES_API - -@@ -316,9 +317,12 @@ eay_cmp_asn1dn(n1, n2) - i = idx+1; - goto end; - } -- if ((ea->value->length == 1 && ea->value->data[0] == '*') || -- (eb->value->length == 1 && eb->value->data[0] == '*')) { -- if (OBJ_cmp(ea->object,eb->object)) { -+ ASN1_STRING *sa = X509_NAME_ENTRY_get_data(ea); -+ ASN1_STRING *sb = X509_NAME_ENTRY_get_data(eb); -+ if ((ASN1_STRING_length(sa) == 1 && ASN1_STRING_get0_data(sa)[0] == '*') || -+ (ASN1_STRING_length(sb) == 1 && ASN1_STRING_get0_data(sb)[0] == '*')) { -+ if (OBJ_cmp(X509_NAME_ENTRY_get_object(ea), -+ X509_NAME_ENTRY_get_object(eb))) { - i = idx+1; - goto end; - } -@@ -430,7 +434,7 @@ cb_check_cert_local(ok, ctx) - - if (!ok) { - X509_NAME_oneline( -- X509_get_subject_name(ctx->current_cert), -+ X509_get_subject_name(X509_STORE_CTX_get_current_cert(ctx)), - buf, - 256); - /* -@@ -438,7 +442,8 @@ cb_check_cert_local(ok, ctx) - * ok if they are self signed. But we should still warn - * the user. - */ -- switch (ctx->error) { -+ int ctx_error = X509_STORE_CTX_get_error(ctx); -+ switch (ctx_error) { - case X509_V_ERR_CERT_HAS_EXPIRED: - case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: - case X509_V_ERR_INVALID_CA: -@@ -453,9 +458,9 @@ cb_check_cert_local(ok, ctx) - } - plog(log_tag, LOCATION, NULL, - "%s(%d) at depth:%d SubjectName:%s\n", -- X509_verify_cert_error_string(ctx->error), -- ctx->error, -- ctx->error_depth, -+ X509_verify_cert_error_string(ctx_error), -+ ctx_error, -+ X509_STORE_CTX_get_error_depth(ctx), - buf); - } - ERR_clear_error(); -@@ -477,10 +482,11 @@ cb_check_cert_remote(ok, ctx) - - if (!ok) { - X509_NAME_oneline( -- X509_get_subject_name(ctx->current_cert), -+ X509_get_subject_name(X509_STORE_CTX_get_current_cert(ctx)), - buf, - 256); -- switch (ctx->error) { -+ int ctx_error=X509_STORE_CTX_get_error(ctx); -+ switch (ctx_error) { - case X509_V_ERR_UNABLE_TO_GET_CRL: - ok = 1; - log_tag = LLV_WARNING; -@@ -490,9 +496,9 @@ cb_check_cert_remote(ok, ctx) - } - plog(log_tag, LOCATION, NULL, - "%s(%d) at depth:%d SubjectName:%s\n", -- X509_verify_cert_error_string(ctx->error), -- ctx->error, -- ctx->error_depth, -+ X509_verify_cert_error_string(ctx_error), -+ ctx_error, -+ X509_STORE_CTX_get_error_depth(ctx), - buf); - } - ERR_clear_error(); -@@ -516,14 +522,15 @@ eay_get_x509asn1subjectname(cert) - if (x509 == NULL) - goto error; - -+ X509_NAME *subject_name = X509_get_subject_name(x509); - /* get the length of the name */ -- len = i2d_X509_NAME(x509->cert_info->subject, NULL); -+ len = i2d_X509_NAME(subject_name, NULL); - name = vmalloc(len); - if (!name) - goto error; - /* get the name */ - bp = (unsigned char *) name->v; -- len = i2d_X509_NAME(x509->cert_info->subject, &bp); -+ len = i2d_X509_NAME(subject_name, &bp); - - X509_free(x509); - -@@ -661,15 +668,16 @@ eay_get_x509asn1issuername(cert) - if (x509 == NULL) - goto error; - -+ X509_NAME *issuer_name = X509_get_issuer_name(x509); - /* get the length of the name */ -- len = i2d_X509_NAME(x509->cert_info->issuer, NULL); -+ len = i2d_X509_NAME(issuer_name, NULL); - name = vmalloc(len); - if (name == NULL) - goto error; - - /* get the name */ - bp = (unsigned char *) name->v; -- len = i2d_X509_NAME(x509->cert_info->issuer, &bp); -+ len = i2d_X509_NAME(issuer_name, &bp); - - X509_free(x509); - -@@ -850,7 +858,7 @@ eay_check_x509sign(source, sig, cert) - return -1; - } - -- res = eay_rsa_verify(source, sig, evp->pkey.rsa); -+ res = eay_rsa_verify(source, sig, EVP_PKEY_get0_RSA(evp)); - - EVP_PKEY_free(evp); - X509_free(x509); -@@ -992,7 +1000,7 @@ eay_get_x509sign(src, privkey) - if (evp == NULL) - return NULL; - -- sig = eay_rsa_sign(src, evp->pkey.rsa); -+ sig = eay_rsa_sign(src, EVP_PKEY_get0_RSA(evp)); - - EVP_PKEY_free(evp); - -@@ -1079,7 +1087,11 @@ eay_strerror() - int line, flags; - unsigned long es; - -+#if OPENSSL_VERSION_NUMBER >= 0x10100000L -+ es = 0; /* even when allowed by OPENSSL_API_COMPAT, it is defined as 0 */ -+#else - es = CRYPTO_thread_id(); -+#endif - - while ((l = ERR_get_error_line_data(&file, &line, &data, &flags)) != 0){ - n = snprintf(ebuf + len, sizeof(ebuf) - len, -@@ -1100,7 +1112,7 @@ vchar_t * - evp_crypt(vchar_t *data, vchar_t *key, vchar_t *iv, const EVP_CIPHER *e, int enc) - { - vchar_t *res; -- EVP_CIPHER_CTX ctx; -+ EVP_CIPHER_CTX *ctx; - - if (!e) - return NULL; -@@ -1111,7 +1123,7 @@ evp_crypt(vchar_t *data, vchar_t *key, vchar_t *iv, const EVP_CIPHER *e, int enc - if ((res = vmalloc(data->l)) == NULL) - return NULL; - -- EVP_CIPHER_CTX_init(&ctx); -+ ctx = EVP_CIPHER_CTX_new(); - - switch(EVP_CIPHER_nid(e)){ - case NID_bf_cbc: -@@ -1125,54 +1137,41 @@ evp_crypt(vchar_t *data, vchar_t *key, vchar_t *iv, const EVP_CIPHER *e, int enc - /* XXX: can we do that also for algos with a fixed key size ? - */ - /* init context without key/iv -- */ -- if (!EVP_CipherInit(&ctx, e, NULL, NULL, enc)) -- { -- OpenSSL_BUG(); -- vfree(res); -- return NULL; -- } -+ */ -+ if (!EVP_CipherInit(ctx, e, NULL, NULL, enc)) -+ goto out; - -- /* update key size -- */ -- if (!EVP_CIPHER_CTX_set_key_length(&ctx, key->l)) -- { -- OpenSSL_BUG(); -- vfree(res); -- return NULL; -- } -- -- /* finalize context init with desired key size -- */ -- if (!EVP_CipherInit(&ctx, NULL, (u_char *) key->v, -+ /* update key size -+ */ -+ if (!EVP_CIPHER_CTX_set_key_length(ctx, key->l)) -+ goto out; -+ -+ /* finalize context init with desired key size -+ */ -+ if (!EVP_CipherInit(ctx, NULL, (u_char *) key->v, - (u_char *) iv->v, enc)) -- { -- OpenSSL_BUG(); -- vfree(res); -- return NULL; -- } -+ goto out; - break; - default: -- if (!EVP_CipherInit(&ctx, e, (u_char *) key->v, -- (u_char *) iv->v, enc)) { -- OpenSSL_BUG(); -- vfree(res); -- return NULL; -- } -+ if (!EVP_CipherInit(ctx, e, (u_char *) key->v, -+ (u_char *) iv->v, enc)) -+ goto out; - } - - /* disable openssl padding */ -- EVP_CIPHER_CTX_set_padding(&ctx, 0); -+ EVP_CIPHER_CTX_set_padding(ctx, 0); - -- if (!EVP_Cipher(&ctx, (u_char *) res->v, (u_char *) data->v, data->l)) { -- OpenSSL_BUG(); -- vfree(res); -- return NULL; -- } -+ if (!EVP_Cipher(ctx, (u_char *) res->v, (u_char *) data->v, data->l)) -+ goto out; - -- EVP_CIPHER_CTX_cleanup(&ctx); -+ EVP_CIPHER_CTX_free(ctx); - - return res; -+out: -+ EVP_CIPHER_CTX_free(ctx); -+ OpenSSL_BUG(); -+ vfree(res); -+ return NULL; - } - - int -@@ -1230,7 +1229,7 @@ eay_des_keylen(len) - return evp_keylen(len, EVP_des_cbc()); - } - --#ifdef HAVE_OPENSSL_IDEA_H -+#if defined(HAVE_OPENSSL_IDEA_H) && ! defined(OPENSSL_NO_IDEA) - /* - * IDEA-CBC - */ -@@ -1587,7 +1586,7 @@ eay_aes_keylen(len) - return len; - } - --#if defined(HAVE_OPENSSL_CAMELLIA_H) -+#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA) - /* - * CAMELLIA-CBC - */ -@@ -1680,9 +1679,9 @@ eay_hmac_init(key, md) - vchar_t *key; - const EVP_MD *md; - { -- HMAC_CTX *c = racoon_malloc(sizeof(*c)); -+ HMAC_CTX *c = HMAC_CTX_new(); - -- HMAC_Init(c, key->v, key->l, md); -+ HMAC_Init_ex(c, key->v, key->l, md, NULL); - - return (caddr_t)c; - } -@@ -1761,8 +1760,7 @@ eay_hmacsha2_512_final(c) - - HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l); - res->l = l; -- HMAC_cleanup((HMAC_CTX *)c); -- (void)racoon_free(c); -+ HMAC_CTX_free((HMAC_CTX *)c); - - if (SHA512_DIGEST_LENGTH != res->l) { - plog(LLV_ERROR, LOCATION, NULL, -@@ -1811,8 +1809,7 @@ eay_hmacsha2_384_final(c) - - HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l); - res->l = l; -- HMAC_cleanup((HMAC_CTX *)c); -- (void)racoon_free(c); -+ HMAC_CTX_free((HMAC_CTX *)c); - - if (SHA384_DIGEST_LENGTH != res->l) { - plog(LLV_ERROR, LOCATION, NULL, -@@ -1861,8 +1858,7 @@ eay_hmacsha2_256_final(c) - - HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l); - res->l = l; -- HMAC_cleanup((HMAC_CTX *)c); -- (void)racoon_free(c); -+ HMAC_CTX_free((HMAC_CTX *)c); - - if (SHA256_DIGEST_LENGTH != res->l) { - plog(LLV_ERROR, LOCATION, NULL, -@@ -1912,8 +1908,7 @@ eay_hmacsha1_final(c) - - HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l); - res->l = l; -- HMAC_cleanup((HMAC_CTX *)c); -- (void)racoon_free(c); -+ HMAC_CTX_free((HMAC_CTX *)c); - - if (SHA_DIGEST_LENGTH != res->l) { - plog(LLV_ERROR, LOCATION, NULL, -@@ -1962,8 +1957,7 @@ eay_hmacmd5_final(c) - - HMAC_Final((HMAC_CTX *)c, (unsigned char *) res->v, &l); - res->l = l; -- HMAC_cleanup((HMAC_CTX *)c); -- (void)racoon_free(c); -+ HMAC_CTX_free((HMAC_CTX *)c); - - if (MD5_DIGEST_LENGTH != res->l) { - plog(LLV_ERROR, LOCATION, NULL, -@@ -2266,6 +2260,7 @@ eay_dh_generate(prime, g, publen, pub, priv) - u_int32_t g; - { - BIGNUM *p = NULL; -+ BIGNUM *BNg = NULL; - DH *dh = NULL; - int error = -1; - -@@ -2276,25 +2271,28 @@ eay_dh_generate(prime, g, publen, pub, priv) - - if ((dh = DH_new()) == NULL) - goto end; -- dh->p = p; -- p = NULL; /* p is now part of dh structure */ -- dh->g = NULL; -- if ((dh->g = BN_new()) == NULL) -+ if ((BNg = BN_new()) == NULL) - goto end; -- if (!BN_set_word(dh->g, g)) -+ if (!BN_set_word(BNg, g)) - goto end; -+ if (! DH_set0_pqg(dh, p, NULL, BNg)) -+ goto end; -+ BNg = NULL; -+ p = NULL; /* p is now part of dh structure */ - - if (publen != 0) -- dh->length = publen; -+ DH_set_length(dh, publen); - - /* generate public and private number */ - if (!DH_generate_key(dh)) - goto end; - - /* copy results to buffers */ -- if (eay_bn2v(pub, dh->pub_key) < 0) -+ BIGNUM *pub_key, *priv_key; -+ DH_get0_key(dh, (const BIGNUM**) &pub_key, (const BIGNUM**) &priv_key); -+ if (eay_bn2v(pub, pub_key) < 0) - goto end; -- if (eay_bn2v(priv, dh->priv_key) < 0) { -+ if (eay_bn2v(priv, priv_key) < 0) { - vfree(*pub); - goto end; - } -@@ -2306,6 +2304,8 @@ end: - DH_free(dh); - if (p != 0) - BN_free(p); -+ if (BNg != 0) -+ BN_free(BNg); - return(error); - } - -@@ -2319,6 +2319,10 @@ eay_dh_compute(prime, g, pub, priv, pub2, key) - int l; - unsigned char *v = NULL; - int error = -1; -+ BIGNUM *p = BN_new(); -+ BIGNUM *BNg = BN_new(); -+ BIGNUM *pub_key = BN_new(); -+ BIGNUM *priv_key = BN_new(); - - /* make public number to compute */ - if (eay_v2bn(&dh_pub, pub2) < 0) -@@ -2327,19 +2331,21 @@ eay_dh_compute(prime, g, pub, priv, pub2, key) - /* make DH structure */ - if ((dh = DH_new()) == NULL) - goto end; -- if (eay_v2bn(&dh->p, prime) < 0) -+ if (p == NULL || BNg == NULL || pub_key == NULL || priv_key == NULL) - goto end; -- if (eay_v2bn(&dh->pub_key, pub) < 0) -+ -+ if (eay_v2bn(&p, prime) < 0) - goto end; -- if (eay_v2bn(&dh->priv_key, priv) < 0) -+ if (eay_v2bn(&pub_key, pub) < 0) - goto end; -- dh->length = pub2->l * 8; -- -- dh->g = NULL; -- if ((dh->g = BN_new()) == NULL) -+ if (eay_v2bn(&priv_key, priv) < 0) - goto end; -- if (!BN_set_word(dh->g, g)) -+ if (!BN_set_word(BNg, g)) - goto end; -+ DH_set0_key(dh, pub_key, priv_key); -+ DH_set_length(dh, pub2->l * 8); -+ DH_set0_pqg(dh, p, NULL, BNg); -+ pub_key = priv_key = p = BNg = NULL; - - if ((v = racoon_calloc(prime->l, sizeof(u_char))) == NULL) - goto end; -@@ -2350,6 +2356,14 @@ eay_dh_compute(prime, g, pub, priv, pub2, key) - error = 0; - - end: -+ if (p != NULL) -+ BN_free(p); -+ if (BNg != NULL) -+ BN_free(BNg); -+ if (pub_key != NULL) -+ BN_free(pub_key); -+ if (priv_key != NULL) -+ BN_free(priv_key); - if (dh_pub != NULL) - BN_free(dh_pub); - if (dh != NULL) -@@ -2400,12 +2414,14 @@ eay_bn2v(var, bn) - void - eay_init() - { -+#if OPENSSL_VERSION_NUMBER < 0x10100000L - OpenSSL_add_all_algorithms(); - ERR_load_crypto_strings(); - #ifdef HAVE_OPENSSL_ENGINE_H - ENGINE_load_builtin_engines(); - ENGINE_register_all_complete(); - #endif -+#endif - } - - vchar_t * -@@ -2504,8 +2520,7 @@ binbuf_pubkey2rsa(vchar_t *binbuf) - goto out; - } - -- rsa_pub->n = mod; -- rsa_pub->e = exp; -+ RSA_set0_key(rsa_pub, mod, exp, NULL); - - out: - return rsa_pub; -@@ -2582,5 +2597,5 @@ eay_random() - const char * - eay_version() - { -- return SSLeay_version(SSLEAY_VERSION); -+ return OpenSSL_version(OPENSSL_VERSION); - } -diff --git a/src/racoon/crypto_openssl.h b/src/racoon/crypto_openssl.h -index 66fac73..ee5b765 100644 ---- a/src/racoon/crypto_openssl.h -+++ b/src/racoon/crypto_openssl.h -@@ -124,7 +124,7 @@ extern vchar_t *eay_aes_decrypt __P((vchar_t *, vchar_t *, vchar_t *)); - extern int eay_aes_weakkey __P((vchar_t *)); - extern int eay_aes_keylen __P((int)); - --#if defined(HAVE_OPENSSL_CAMELLIA_H) -+#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA) - /* Camellia */ - extern vchar_t *eay_camellia_encrypt __P((vchar_t *, vchar_t *, vchar_t *)); - extern vchar_t *eay_camellia_decrypt __P((vchar_t *, vchar_t *, vchar_t *)); -diff --git a/src/racoon/eaytest.c b/src/racoon/eaytest.c -index d609e4f..d2d20da 100644 ---- a/src/racoon/eaytest.c -+++ b/src/racoon/eaytest.c -@@ -62,6 +62,7 @@ - #include "dhgroup.h" - #include "crypto_openssl.h" - #include "gnuc.h" -+#include "openssl_compat.h" - - #include "package_version.h" - -@@ -103,7 +104,7 @@ rsa_verify_with_pubkey(src, sig, pubkey_txt) - printf ("PEM_read_PUBKEY(): %s\n", eay_strerror()); - return -1; - } -- error = eay_check_rsasign(src, sig, evp->pkey.rsa); -+ error = eay_check_rsasign(src, sig, EVP_PKEY_get0_RSA(evp)); - - return error; - } -@@ -698,7 +699,7 @@ ciphertest(ac, av) - eay_cast_encrypt, eay_cast_decrypt) < 0) - return -1; - --#ifdef HAVE_OPENSSL_IDEA_H -+#if defined(HAVE_OPENSSL_IDEA_H) && ! defined(OPENSSL_NO_IDEA) - if (ciphertest_1 ("IDEA", - &data, 8, - &key, key.l, -@@ -715,7 +716,7 @@ ciphertest(ac, av) - eay_rc5_encrypt, eay_rc5_decrypt) < 0) - return -1; - #endif --#if defined(HAVE_OPENSSL_CAMELLIA_H) -+#if defined(HAVE_OPENSSL_CAMELLIA_H) && ! defined(OPENSSL_NO_CAMELLIA) - if (ciphertest_1 ("CAMELLIA", - &data, 16, - &key, key.l, -diff --git a/src/racoon/ipsec_doi.c b/src/racoon/ipsec_doi.c -index 08e4325..7b1604d 100644 ---- a/src/racoon/ipsec_doi.c -+++ b/src/racoon/ipsec_doi.c -@@ -715,7 +715,7 @@ out: - /* key length must not be specified on some algorithms */ - if (keylen) { - if (sa->enctype == OAKLEY_ATTR_ENC_ALG_DES --#ifdef HAVE_OPENSSL_IDEA_H -+#if defined(HAVE_OPENSSL_IDEA_H) && ! defined(OPENSSL_NO_IDEA) - || sa->enctype == OAKLEY_ATTR_ENC_ALG_IDEA - #endif - || sa->enctype == OAKLEY_ATTR_ENC_ALG_3DES) { -diff --git a/src/racoon/openssl_compat.c b/src/racoon/openssl_compat.c -new file mode 100644 -index 0000000..864b5fb ---- /dev/null -+++ b/src/racoon/openssl_compat.c -@@ -0,0 +1,213 @@ -+/* -+ * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. -+ * -+ * Licensed under the OpenSSL license (the "License"). You may not use -+ * this file except in compliance with the License. You can obtain a copy -+ * in the file LICENSE in the source distribution or at -+ * https://www.openssl.org/source/license.html -+ */ -+ -+#include "openssl_compat.h" -+ -+#if OPENSSL_VERSION_NUMBER < 0x10100000L -+ -+#include <string.h> -+ -+static void *OPENSSL_zalloc(size_t num) -+{ -+ void *ret = OPENSSL_malloc(num); -+ -+ if (ret != NULL) -+ memset(ret, 0, num); -+ return ret; -+} -+ -+int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d) -+{ -+ /* If the fields n and e in r are NULL, the corresponding input -+ * parameters MUST be non-NULL for n and e. d may be -+ * left NULL (in case only the public key is used). -+ */ -+ if ((r->n == NULL && n == NULL) -+ || (r->e == NULL && e == NULL)) -+ return 0; -+ -+ if (n != NULL) { -+ BN_free(r->n); -+ r->n = n; -+ } -+ if (e != NULL) { -+ BN_free(r->e); -+ r->e = e; -+ } -+ if (d != NULL) { -+ BN_free(r->d); -+ r->d = d; -+ } -+ -+ return 1; -+} -+ -+int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q) -+{ -+ /* If the fields p and q in r are NULL, the corresponding input -+ * parameters MUST be non-NULL. -+ */ -+ if ((r->p == NULL && p == NULL) -+ || (r->q == NULL && q == NULL)) -+ return 0; -+ -+ if (p != NULL) { -+ BN_free(r->p); -+ r->p = p; -+ } -+ if (q != NULL) { -+ BN_free(r->q); -+ r->q = q; -+ } -+ -+ return 1; -+} -+ -+int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp) -+{ -+ /* If the fields dmp1, dmq1 and iqmp in r are NULL, the corresponding input -+ * parameters MUST be non-NULL. -+ */ -+ if ((r->dmp1 == NULL && dmp1 == NULL) -+ || (r->dmq1 == NULL && dmq1 == NULL) -+ || (r->iqmp == NULL && iqmp == NULL)) -+ return 0; -+ -+ if (dmp1 != NULL) { -+ BN_free(r->dmp1); -+ r->dmp1 = dmp1; -+ } -+ if (dmq1 != NULL) { -+ BN_free(r->dmq1); -+ r->dmq1 = dmq1; -+ } -+ if (iqmp != NULL) { -+ BN_free(r->iqmp); -+ r->iqmp = iqmp; -+ } -+ -+ return 1; -+} -+ -+void RSA_get0_key(const RSA *r, -+ const BIGNUM **n, const BIGNUM **e, const BIGNUM **d) -+{ -+ if (n != NULL) -+ *n = r->n; -+ if (e != NULL) -+ *e = r->e; -+ if (d != NULL) -+ *d = r->d; -+} -+ -+void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q) -+{ -+ if (p != NULL) -+ *p = r->p; -+ if (q != NULL) -+ *q = r->q; -+} -+ -+void RSA_get0_crt_params(const RSA *r, -+ const BIGNUM **dmp1, const BIGNUM **dmq1, -+ const BIGNUM **iqmp) -+{ -+ if (dmp1 != NULL) -+ *dmp1 = r->dmp1; -+ if (dmq1 != NULL) -+ *dmq1 = r->dmq1; -+ if (iqmp != NULL) -+ *iqmp = r->iqmp; -+} -+ -+int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g) -+{ -+ /* If the fields p and g in d are NULL, the corresponding input -+ * parameters MUST be non-NULL. q may remain NULL. -+ */ -+ if ((dh->p == NULL && p == NULL) -+ || (dh->g == NULL && g == NULL)) -+ return 0; -+ -+ if (p != NULL) { -+ BN_free(dh->p); -+ dh->p = p; -+ } -+ if (q != NULL) { -+ BN_free(dh->q); -+ dh->q = q; -+ } -+ if (g != NULL) { -+ BN_free(dh->g); -+ dh->g = g; -+ } -+ -+ if (q != NULL) { -+ dh->length = BN_num_bits(q); -+ } -+ -+ return 1; -+} -+ -+void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key) -+{ -+ if (pub_key != NULL) -+ *pub_key = dh->pub_key; -+ if (priv_key != NULL) -+ *priv_key = dh->priv_key; -+} -+ -+int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key) -+{ -+ /* If the field pub_key in dh is NULL, the corresponding input -+ * parameters MUST be non-NULL. The priv_key field may -+ * be left NULL. -+ */ -+ if (dh->pub_key == NULL && pub_key == NULL) -+ return 0; -+ -+ if (pub_key != NULL) { -+ BN_free(dh->pub_key); -+ dh->pub_key = pub_key; -+ } -+ if (priv_key != NULL) { -+ BN_free(dh->priv_key); -+ dh->priv_key = priv_key; -+ } -+ -+ return 1; -+} -+ -+int DH_set_length(DH *dh, long length) -+{ -+ dh->length = length; -+ return 1; -+} -+ -+HMAC_CTX *HMAC_CTX_new(void) -+{ -+ return OPENSSL_zalloc(sizeof(HMAC_CTX)); -+} -+ -+void HMAC_CTX_free(HMAC_CTX *ctx) -+{ -+ HMAC_CTX_cleanup(ctx); -+ OPENSSL_free(ctx); -+} -+ -+RSA *EVP_PKEY_get0_RSA(EVP_PKEY *pkey) -+{ -+ if (pkey->type != EVP_PKEY_RSA) { -+ return NULL; -+ } -+ return pkey->pkey.rsa; -+} -+ -+ -+#endif /* OPENSSL_VERSION_NUMBER */ -diff --git a/src/racoon/openssl_compat.h b/src/racoon/openssl_compat.h -new file mode 100644 -index 0000000..9e152c2 ---- /dev/null -+++ b/src/racoon/openssl_compat.h -@@ -0,0 +1,45 @@ -+#ifndef OPENSSL_COMPAT_H -+#define OPENSSL_COMPAT_H -+ -+#include <openssl/opensslv.h> -+#if OPENSSL_VERSION_NUMBER < 0x10100000L -+ -+#include <openssl/rsa.h> -+#include <openssl/dh.h> -+#include <openssl/evp.h> -+#include <openssl/hmac.h> -+ -+int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d); -+int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q); -+int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp); -+void RSA_get0_key(const RSA *r, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d); -+void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q); -+void RSA_get0_crt_params(const RSA *r, const BIGNUM **dmp1, const BIGNUM **dmq1, const BIGNUM **iqmp); -+ -+int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g); -+void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key); -+int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key); -+int DH_set_length(DH *dh, long length); -+ -+HMAC_CTX *HMAC_CTX_new(void); -+void HMAC_CTX_free(HMAC_CTX* ctx); -+ -+RSA *EVP_PKEY_get0_RSA(EVP_PKEY *pkey); -+ -+#define ASN1_STRING_length(s) s->length -+#define ASN1_STRING_get0_data(s) s->data -+ -+#define X509_get_subject_name(x) x->cert_info->subject -+#define X509_get_issuer_name(x) x->cert_info->issuer -+#define X509_NAME_ENTRY_get_data(n) n->value -+#define X509_NAME_ENTRY_get_object(n) n->object -+#define X509_STORE_CTX_get_current_cert(ctx) ctx->current_cert -+#define X509_STORE_CTX_get_error(ctx) ctx->error -+#define X509_STORE_CTX_get_error_depth(ctx) ctx->error_depth -+ -+#define OPENSSL_VERSION SSLEAY_VERSION -+#define OpenSSL_version SSLeay_version -+ -+#endif /* OPENSSL_VERSION_NUMBER */ -+ -+#endif /* OPENSSL_COMPAT_H */ -diff --git a/src/racoon/plainrsa-gen.c b/src/racoon/plainrsa-gen.c -index cad1861..b949b08 100644 ---- a/src/racoon/plainrsa-gen.c -+++ b/src/racoon/plainrsa-gen.c -@@ -60,6 +60,7 @@ - #include "vmbuf.h" - #include "plog.h" - #include "crypto_openssl.h" -+#include "openssl_compat.h" - - #include "package_version.h" - -@@ -90,12 +91,14 @@ mix_b64_pubkey(const RSA *key) - char *binbuf; - long binlen, ret; - vchar_t *res; -- -- binlen = 1 + BN_num_bytes(key->e) + BN_num_bytes(key->n); -+ const BIGNUM *e, *n; -+ -+ RSA_get0_key(key, &n, &e, NULL); -+ binlen = 1 + BN_num_bytes(e) + BN_num_bytes(n); - binbuf = malloc(binlen); - memset(binbuf, 0, binlen); -- binbuf[0] = BN_bn2bin(key->e, (unsigned char *) &binbuf[1]); -- ret = BN_bn2bin(key->n, (unsigned char *) (&binbuf[binbuf[0] + 1])); -+ binbuf[0] = BN_bn2bin(e, (unsigned char *) &binbuf[1]); -+ ret = BN_bn2bin(n, (unsigned char *) (&binbuf[binbuf[0] + 1])); - if (1 + binbuf[0] + ret != binlen) { - plog(LLV_ERROR, LOCATION, NULL, - "Pubkey generation failed. This is really strange...\n"); -@@ -131,16 +134,20 @@ print_rsa_key(FILE *fp, const RSA *key) - - fprintf(fp, "# : PUB 0s%s\n", pubkey64->v); - fprintf(fp, ": RSA\t{\n"); -- fprintf(fp, "\t# RSA %d bits\n", BN_num_bits(key->n)); -+ const BIGNUM *n, *e, *d, *p, *q, *dmp1, *dmq1, *iqmp; -+ RSA_get0_key(key, &n, &e, &d); -+ RSA_get0_factors(key, &p, &q); -+ RSA_get0_crt_params(key, &dmp1, &dmq1, &iqmp); -+ fprintf(fp, "\t# RSA %d bits\n", BN_num_bits(n)); - fprintf(fp, "\t# pubkey=0s%s\n", pubkey64->v); -- fprintf(fp, "\tModulus: 0x%s\n", lowercase(BN_bn2hex(key->n))); -- fprintf(fp, "\tPublicExponent: 0x%s\n", lowercase(BN_bn2hex(key->e))); -- fprintf(fp, "\tPrivateExponent: 0x%s\n", lowercase(BN_bn2hex(key->d))); -- fprintf(fp, "\tPrime1: 0x%s\n", lowercase(BN_bn2hex(key->p))); -- fprintf(fp, "\tPrime2: 0x%s\n", lowercase(BN_bn2hex(key->q))); -- fprintf(fp, "\tExponent1: 0x%s\n", lowercase(BN_bn2hex(key->dmp1))); -- fprintf(fp, "\tExponent2: 0x%s\n", lowercase(BN_bn2hex(key->dmq1))); -- fprintf(fp, "\tCoefficient: 0x%s\n", lowercase(BN_bn2hex(key->iqmp))); -+ fprintf(fp, "\tModulus: 0x%s\n", lowercase(BN_bn2hex(n))); -+ fprintf(fp, "\tPublicExponent: 0x%s\n", lowercase(BN_bn2hex(e))); -+ fprintf(fp, "\tPrivateExponent: 0x%s\n", lowercase(BN_bn2hex(d))); -+ fprintf(fp, "\tPrime1: 0x%s\n", lowercase(BN_bn2hex(p))); -+ fprintf(fp, "\tPrime2: 0x%s\n", lowercase(BN_bn2hex(q))); -+ fprintf(fp, "\tExponent1: 0x%s\n", lowercase(BN_bn2hex(dmp1))); -+ fprintf(fp, "\tExponent2: 0x%s\n", lowercase(BN_bn2hex(dmq1))); -+ fprintf(fp, "\tCoefficient: 0x%s\n", lowercase(BN_bn2hex(iqmp))); - fprintf(fp, " }\n"); - - vfree(pubkey64); -@@ -203,11 +210,13 @@ int - gen_rsa_key(FILE *fp, size_t bits, unsigned long exp) - { - int ret; -- RSA *key; -+ RSA *key = RSA_new(); -+ BIGNUM *e = BN_new(); - -- key = RSA_generate_key(bits, exp, NULL, NULL); -- if (!key) { -+ BN_set_word(e, exp); -+ if (! RSA_generate_key_ex(key, bits, e, NULL)) { - fprintf(stderr, "RSA_generate_key(): %s\n", eay_strerror()); -+ RSA_free(key); - return -1; - } - -diff --git a/src/racoon/prsa_par.y b/src/racoon/prsa_par.y -index 1987e4d..27ce4c6 100644 ---- a/src/racoon/prsa_par.y -+++ b/src/racoon/prsa_par.y -@@ -68,6 +68,7 @@ - #include "isakmp_var.h" - #include "handler.h" - #include "crypto_openssl.h" -+#include "openssl_compat.h" - #include "sockmisc.h" - #include "rsalist.h" - -@@ -85,7 +86,18 @@ char *prsa_cur_fname = NULL; - struct genlist *prsa_cur_list = NULL; - enum rsa_key_type prsa_cur_type = RSA_TYPE_ANY; - --static RSA *rsa_cur; -+struct my_rsa_st { -+ BIGNUM *n; -+ BIGNUM *e; -+ BIGNUM *d; -+ BIGNUM *p; -+ BIGNUM *q; -+ BIGNUM *dmp1; -+ BIGNUM *dmq1; -+ BIGNUM *iqmp; -+}; -+ -+static struct my_rsa_st *rsa_cur; - - void - prsaerror(const char *s, ...) -@@ -201,8 +213,12 @@ rsa_statement: - rsa_cur->iqmp = NULL; - } - } -- $$ = rsa_cur; -- rsa_cur = RSA_new(); -+ RSA * rsa_tmp = RSA_new(); -+ RSA_set0_key(rsa_tmp, rsa_cur->n, rsa_cur->e, rsa_cur->d); -+ RSA_set0_factors(rsa_tmp, rsa_cur->p, rsa_cur->q); -+ RSA_set0_crt_params(rsa_tmp, rsa_cur->dmp1, rsa_cur->dmq1, rsa_cur->iqmp); -+ $$ = rsa_tmp; -+ memset(rsa_cur, 0, sizeof(struct my_rsa_st)); - } - | TAG_PUB BASE64 - { -@@ -351,10 +367,12 @@ prsa_parse_file(struct genlist *list, char *fname, enum rsa_key_type type) - prsa_cur_fname = fname; - prsa_cur_list = list; - prsa_cur_type = type; -- rsa_cur = RSA_new(); -+ rsa_cur = malloc(sizeof(struct my_rsa_st)); -+ memset(rsa_cur, 0, sizeof(struct my_rsa_st)); - ret = prsaparse(); - if (rsa_cur) { -- RSA_free(rsa_cur); -+ memset(rsa_cur, 0, sizeof(struct my_rsa_st)); -+ free(rsa_cur); - rsa_cur = NULL; - } - fclose (fp); -diff --git a/src/racoon/rsalist.c b/src/racoon/rsalist.c -index f152c82..96e8363 100644 ---- a/src/racoon/rsalist.c -+++ b/src/racoon/rsalist.c -@@ -52,6 +52,7 @@ - #include "genlist.h" - #include "remoteconf.h" - #include "crypto_openssl.h" -+#include "openssl_compat.h" - - #ifndef LIST_FIRST - #define LIST_FIRST(head) ((head)->lh_first) -@@ -98,7 +99,9 @@ rsa_key_dup(struct rsa_key *key) - return NULL; - - if (key->rsa) { -- new->rsa = key->rsa->d != NULL ? RSAPrivateKey_dup(key->rsa) : RSAPublicKey_dup(key->rsa); -+ const BIGNUM *d; -+ RSA_get0_key(key->rsa, NULL, NULL, &d); -+ new->rsa = (d != NULL ? RSAPrivateKey_dup(key->rsa) : RSAPublicKey_dup(key->rsa)); - if (new->rsa == NULL) - goto dup_error; - } --- -2.7.4 - diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-racoon-pfkey-avoid-potential-null-pointer-dereferenc.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-racoon-pfkey-avoid-potential-null-pointer-dereferenc.patch deleted file mode 100644 index d5602c03db..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-racoon-pfkey-avoid-potential-null-pointer-dereferenc.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 738a9857be9c92ad2f70be88ccee238e3154a936 Mon Sep 17 00:00:00 2001 -From: Joe MacDonald <joe.macdonald@windriver.com> -Date: Wed, 2 Oct 2013 14:20:37 -0400 -Subject: [PATCH] racoon/pfkey: avoid potential null-pointer dereference - -Building with -Werror=maybe-uninitialized revealed that 'remote' from -pk_recvmigrate() could be used with uninitialized data in -migrate_sp_ike_addresses(). Ensure it is always at a minimum assigned -NULL. - -Upstream-Status: Pending - -Signed-off-by: Joe MacDonald <joe.macdonald@windriver.com> ---- - src/racoon/pfkey.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/racoon/pfkey.c b/src/racoon/pfkey.c -index d00b166..e0dc1db 100644 ---- a/src/racoon/pfkey.c -+++ b/src/racoon/pfkey.c -@@ -3352,7 +3352,7 @@ pk_recvmigrate(mhp) - struct sockaddr *old_saddr, *new_saddr; - struct sockaddr *old_daddr, *new_daddr; - struct sockaddr *old_local, *old_remote; -- struct sockaddr *local, *remote; -+ struct sockaddr *local, *remote = NULL; - struct sadb_x_kmaddress *kmaddr; - struct sadb_x_policy *xpl; - struct sadb_x_ipsecrequest *xisr_list; --- -1.7.9.5 - diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-Don-t-link-against-libfl.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-Don-t-link-against-libfl.patch deleted file mode 100644 index 13e9d73fc4..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-Don-t-link-against-libfl.patch +++ /dev/null @@ -1,87 +0,0 @@ -From e48b9097dce7bc2bfbb9e9c542124d3b5cebab39 Mon Sep 17 00:00:00 2001 -From: Paul Barker <paul@paulbarker.me.uk> -Date: Wed, 5 Mar 2014 13:39:14 +0000 -Subject: [PATCH] Don't link against libfl - -We can remove all references to yywrap by adding "%option noyywrap" statements -to each flex source file that doesn't override yywrap. After this, we no longer -need to link against libfl and so no longer get errors about undefined -references to yylex. - -Signed-off-by: Paul Barker <paul@paulbarker.me.uk> -Upstream-status: Submitted 2014-03-11 - see http://sourceforge.net/p/ipsec-tools/mailman/ipsec-tools-devel/thread/CANyK_8ewmxGA3vBVJW6s1APXPmxPR%2BDFWZ61EL8pCt288aKQ6w%40mail.gmail.com/#msg32088797 ---- - src/libipsec/Makefile.am | 1 - - src/racoon/Makefile.am | 2 +- - src/racoon/cftoken.l | 2 ++ - src/setkey/Makefile.am | 1 - - src/setkey/token.l | 2 ++ - 5 files changed, 5 insertions(+), 3 deletions(-) - -diff --git a/src/libipsec/Makefile.am b/src/libipsec/Makefile.am -index 6a4e3b3..df1e106 100644 ---- a/src/libipsec/Makefile.am -+++ b/src/libipsec/Makefile.am -@@ -26,7 +26,6 @@ libipsec_la_SOURCES = \ - # version is current:revision:age. - # See: http://www.gnu.org/manual/libtool-1.4.2/html_chapter/libtool_6.html#SEC32 - libipsec_la_LDFLAGS = -version-info 0:1:0 --libipsec_la_LIBADD = $(LEXLIB) - - noinst_HEADERS = ipsec_strerror.h - -diff --git a/src/racoon/Makefile.am b/src/racoon/Makefile.am -index dbaded9..0662957 100644 ---- a/src/racoon/Makefile.am -+++ b/src/racoon/Makefile.am -@@ -38,7 +38,7 @@ racoon_SOURCES = \ - cftoken.l cfparse.y prsa_tok.l prsa_par.y - EXTRA_racoon_SOURCES = isakmp_xauth.c isakmp_cfg.c isakmp_unity.c throttle.c \ - isakmp_frag.c nattraversal.c security.c $(MISSING_ALGOS) --racoon_LDADD = $(CRYPTOBJS) $(HYBRID_OBJS) $(NATT_OBJS) $(FRAG_OBJS) $(LEXLIB) \ -+racoon_LDADD = $(CRYPTOBJS) $(HYBRID_OBJS) $(NATT_OBJS) $(FRAG_OBJS) \ - $(SECCTX_OBJS) vmbuf.o sockmisc.o misc.o ../libipsec/libipsec.la - racoon_DEPENDENCIES = \ - $(CRYPTOBJS) $(HYBRID_OBJS) $(NATT_OBJS) $(FRAG_OBJS) $(SECCTX_OBJS) \ -diff --git a/src/racoon/cftoken.l b/src/racoon/cftoken.l -index 490242c..1701922 100644 ---- a/src/racoon/cftoken.l -+++ b/src/racoon/cftoken.l -@@ -106,6 +106,8 @@ static int incstackp = 0; - static int yy_first_time = 1; - %} - -+%option noyywrap -+ - /* common seciton */ - nl \n - ws [ \t]+ -diff --git a/src/setkey/Makefile.am b/src/setkey/Makefile.am -index 746c1f1..389e6cf 100644 ---- a/src/setkey/Makefile.am -+++ b/src/setkey/Makefile.am -@@ -13,7 +13,6 @@ setkey_SOURCES = \ - - setkey_LDFLAGS = ../libipsec/libipsec.la - setkey_DEPENDENCIES = ../libipsec/libipsec.la --setkey_LDADD = $(LEXLIB) - - noinst_HEADERS = vchar.h extern.h - man8_MANS = setkey.8 -diff --git a/src/setkey/token.l b/src/setkey/token.l -index ad3d843..eb23b76 100644 ---- a/src/setkey/token.l -+++ b/src/setkey/token.l -@@ -88,6 +88,8 @@ - #endif - %} - -+%option noyywrap -+ - /* common section */ - nl \n - ws [ \t]+ --- -1.9.0 - diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-cfparse-clear-memory-equal-to-size-of-array.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-cfparse-clear-memory-equal-to-size-of-array.patch deleted file mode 100644 index e9dd84aaa9..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-cfparse-clear-memory-equal-to-size-of-array.patch +++ /dev/null @@ -1,30 +0,0 @@ -From a5c59f6a1479947d33dba5191724cc5fc88a614b Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 22 Apr 2017 10:39:57 -0700 -Subject: [PATCH 2/2] cfparse: clear memory equal to size of array - -Fixes compiler error -cfparse.y: In function 'set_isakmp_proposal': -cfparse.y:2567:3: error: 'memset' used with length equal to number of elements without multiplication by element size [-Werror=memset-elt-size] - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/racoon/cfparse.y | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/racoon/cfparse.y b/src/racoon/cfparse.y -index 0d9bd67..5d9c67b 100644 ---- a/src/racoon/cfparse.y -+++ b/src/racoon/cfparse.y -@@ -2564,7 +2564,7 @@ set_isakmp_proposal(rmconf) - plog(LLV_DEBUG2, LOCATION, NULL, - "encklen=%d\n", s->encklen); - -- memset(types, 0, ARRAYLEN(types)); -+ memset(types, 0, sizeof(types)); - types[algclass_isakmp_enc] = s->algclass[algclass_isakmp_enc]; - types[algclass_isakmp_hash] = s->algclass[algclass_isakmp_hash]; - types[algclass_isakmp_dh] = s->algclass[algclass_isakmp_dh]; --- -2.12.2 - diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/configure.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/configure.patch deleted file mode 100644 index 8d270a62b9..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/configure.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: ipsec-tools-0.8.1/configure.ac -=================================================================== ---- ipsec-tools-0.8.1.orig/configure.ac 2013-01-08 12:43:29.000000000 +0000 -+++ ipsec-tools-0.8.1/configure.ac 2014-07-18 07:51:30.045555880 +0000 -@@ -6,7 +6,7 @@ - AC_CONFIG_SRCDIR([configure.ac]) - AC_CONFIG_HEADERS(config.h) - --AM_INIT_AUTOMAKE(dist-bzip2) -+AM_INIT_AUTOMAKE([foreign dist-bzip2]) - - AC_ENABLE_SHARED(no) - diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2015-4047.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2015-4047.patch deleted file mode 100644 index 7e033af5ee..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2015-4047.patch +++ /dev/null @@ -1,38 +0,0 @@ -[PATCH] fix CVE-2015-4047 - -Upstream-Status: Backport - -CVE: CVE-2015-4047 - -http://www.openwall.com/lists/oss-security/2015/05/20/1 - -racoon/gssapi.c in IPsec-Tools 0.8.2 allows remote attackers to cause -a denial of service (NULL pointer dereference and IKE daemon crash) via -a series of crafted UDP requests. - -https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-4047 - -Signed-off-by: Roy Li <rongqing.li@windriver.com> ---- - src/racoon/gssapi.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/racoon/gssapi.c b/src/racoon/gssapi.c -index e64b201..1ad3b42 100644 ---- a/src/racoon/gssapi.c -+++ b/src/racoon/gssapi.c -@@ -192,6 +192,11 @@ gssapi_init(struct ph1handle *iph1) - gss_name_t princ, canon_princ; - OM_uint32 maj_stat, min_stat; - -+ if (iph1->rmconf == NULL) { -+ plog(LLV_ERROR, LOCATION, NULL, "no remote config\n"); -+ return -1; -+ } -+ - gps = racoon_calloc(1, sizeof (struct gssapi_ph1_state)); - if (gps == NULL) { - plog(LLV_ERROR, LOCATION, NULL, "racoon_calloc failed\n"); --- -1.9.1 - diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2016-10396.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2016-10396.patch deleted file mode 100644 index fec4804c02..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2016-10396.patch +++ /dev/null @@ -1,207 +0,0 @@ -Upstream-Status: Backport [https://anonscm.debian.org/cgit/pkg-ipsec-tools/pkg-ipsec-tools.git/plain/debian/patches/CVE-2016-10396.patch?id=62ac12648a4eb7c5ba5dba0f81998d1acf310d8b] - -CVE: CVE-2016-10396 - -Signed-off-by: Kai Kang <kai.kang@windriver.com> ---- -Description: Fix remotely exploitable DoS. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10396 -Source: vendor; https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=51682 -Bug-debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=867986 - -Index: pkg-ipsec-tools/src/racoon/isakmp_frag.c -=================================================================== ---- pkg-ipsec-tools.orig/src/racoon/isakmp_frag.c -+++ pkg-ipsec-tools/src/racoon/isakmp_frag.c -@@ -1,4 +1,4 @@ --/* $NetBSD: isakmp_frag.c,v 1.5 2009/04/22 11:24:20 tteras Exp $ */ -+/* $NetBSD: isakmp_frag.c,v 1.5.36.1 2017/04/21 16:50:42 bouyer Exp $ */ - - /* Id: isakmp_frag.c,v 1.4 2004/11/13 17:31:36 manubsd Exp */ - -@@ -173,6 +173,43 @@ vendorid_frag_cap(gen) - return ntohl(hp[MD5_DIGEST_LENGTH / sizeof(*hp)]); - } - -+static int -+isakmp_frag_insert(struct ph1handle *iph1, struct isakmp_frag_item *item) -+{ -+ struct isakmp_frag_item *pitem = NULL; -+ struct isakmp_frag_item *citem = iph1->frag_chain; -+ -+ /* no frag yet, just insert at beginning of list */ -+ if (iph1->frag_chain == NULL) { -+ iph1->frag_chain = item; -+ return 0; -+ } -+ -+ do { -+ /* duplicate fragment number, abort (CVE-2016-10396) */ -+ if (citem->frag_num == item->frag_num) -+ return -1; -+ -+ /* need to insert before current item */ -+ if (citem->frag_num > item->frag_num) { -+ if (pitem != NULL) -+ pitem->frag_next = item; -+ else -+ /* insert at the beginning of the list */ -+ iph1->frag_chain = item; -+ item->frag_next = citem; -+ return 0; -+ } -+ -+ pitem = citem; -+ citem = citem->frag_next; -+ } while (citem != NULL); -+ -+ /* we reached the end of the list, insert */ -+ pitem->frag_next = item; -+ return 0; -+} -+ - int - isakmp_frag_extract(iph1, msg) - struct ph1handle *iph1; -@@ -224,39 +261,43 @@ isakmp_frag_extract(iph1, msg) - item->frag_next = NULL; - item->frag_packet = buf; - -- /* Look for the last frag while inserting the new item in the chain */ -- if (item->frag_last) -- last_frag = item->frag_num; -+ /* Check for the last frag before inserting the new item in the chain */ -+ if (item->frag_last) { -+ /* if we have the last fragment, indices must match */ -+ if (iph1->frag_last_index != 0 && -+ item->frag_last != iph1->frag_last_index) { -+ plog(LLV_ERROR, LOCATION, NULL, -+ "Repeated last fragment index mismatch\n"); -+ racoon_free(item); -+ vfree(buf); -+ return -1; -+ } - -- if (iph1->frag_chain == NULL) { -- iph1->frag_chain = item; -- } else { -- struct isakmp_frag_item *current; -+ last_frag = iph1->frag_last_index = item->frag_num; -+ } - -- current = iph1->frag_chain; -- while (current->frag_next) { -- if (current->frag_last) -- last_frag = item->frag_num; -- current = current->frag_next; -- } -- current->frag_next = item; -+ /* insert fragment into chain */ -+ if (isakmp_frag_insert(iph1, item) == -1) { -+ plog(LLV_ERROR, LOCATION, NULL, -+ "Repeated fragment index mismatch\n"); -+ racoon_free(item); -+ vfree(buf); -+ return -1; - } - -- /* If we saw the last frag, check if the chain is complete */ -+ /* If we saw the last frag, check if the chain is complete -+ * we have a sorted list now, so just walk through */ - if (last_frag != 0) { -+ item = iph1->frag_chain; - for (i = 1; i <= last_frag; i++) { -- item = iph1->frag_chain; -- do { -- if (item->frag_num == i) -- break; -- item = item->frag_next; -- } while (item != NULL); -- -+ if (item->frag_num != i) -+ break; -+ item = item->frag_next; - if (item == NULL) /* Not found */ - break; - } - -- if (item != NULL) /* It is complete */ -+ if (i > last_frag) /* It is complete */ - return 1; - } - -@@ -291,15 +332,9 @@ isakmp_frag_reassembly(iph1) - } - data = buf->v; - -+ item = iph1->frag_chain; - for (i = 1; i <= frag_count; i++) { -- item = iph1->frag_chain; -- do { -- if (item->frag_num == i) -- break; -- item = item->frag_next; -- } while (item != NULL); -- -- if (item == NULL) { -+ if (item->frag_num != i) { - plog(LLV_ERROR, LOCATION, NULL, - "Missing fragment #%d\n", i); - vfree(buf); -@@ -308,6 +343,7 @@ isakmp_frag_reassembly(iph1) - } - memcpy(data, item->frag_packet->v, item->frag_packet->l); - data += item->frag_packet->l; -+ item = item->frag_next; - } - - out: -Index: pkg-ipsec-tools/src/racoon/isakmp_inf.c -=================================================================== ---- pkg-ipsec-tools.orig/src/racoon/isakmp_inf.c -+++ pkg-ipsec-tools/src/racoon/isakmp_inf.c -@@ -720,6 +720,7 @@ isakmp_info_send_nx(isakmp, remote, loca - #endif - #ifdef ENABLE_FRAG - iph1->frag = 0; -+ iph1->frag_last_index = 0; - iph1->frag_chain = NULL; - #endif - -Index: pkg-ipsec-tools/src/racoon/isakmp.c -=================================================================== ---- pkg-ipsec-tools.orig/src/racoon/isakmp.c -+++ pkg-ipsec-tools/src/racoon/isakmp.c -@@ -1072,6 +1072,7 @@ isakmp_ph1begin_i(rmconf, remote, local) - iph1->frag = 1; - else - iph1->frag = 0; -+ iph1->frag_last_index = 0; - iph1->frag_chain = NULL; - #endif - iph1->approval = NULL; -@@ -1176,6 +1177,7 @@ isakmp_ph1begin_r(msg, remote, local, et - #endif - #ifdef ENABLE_FRAG - iph1->frag = 0; -+ iph1->frag_last_index = 0; - iph1->frag_chain = NULL; - #endif - iph1->approval = NULL; -Index: pkg-ipsec-tools/src/racoon/handler.h -=================================================================== ---- pkg-ipsec-tools.orig/src/racoon/handler.h -+++ pkg-ipsec-tools/src/racoon/handler.h -@@ -1,4 +1,4 @@ --/* $NetBSD: handler.h,v 1.25 2010/11/17 10:40:41 tteras Exp $ */ -+/* $NetBSD: handler.h,v 1.26 2017/01/24 19:23:56 christos Exp $ */ - - /* Id: handler.h,v 1.19 2006/02/25 08:25:12 manubsd Exp */ - -@@ -141,6 +141,7 @@ struct ph1handle { - #endif - #ifdef ENABLE_FRAG - int frag; /* IKE phase 1 fragmentation */ -+ int frag_last_index; - struct isakmp_frag_item *frag_chain; /* Received fragments */ - #endif - diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/glibc-2.20.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/glibc-2.20.patch deleted file mode 100644 index 36efc49179..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/glibc-2.20.patch +++ /dev/null @@ -1,23 +0,0 @@ -squahes below warning - warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" - -Seen with glibc 2.20 - -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Upstream-Status: Pending -Index: ipsec-tools-0.8.2/src/include-glibc/glibc-bugs.h -=================================================================== ---- ipsec-tools-0.8.2.orig/src/include-glibc/glibc-bugs.h 2006-09-09 09:22:08.000000000 -0700 -+++ ipsec-tools-0.8.2/src/include-glibc/glibc-bugs.h 2014-09-03 22:27:22.551563888 -0700 -@@ -4,7 +4,11 @@ - #define __GLIBC_BUGS_H__ 1 - - #define _XOPEN_SOURCE 500 -+/* Legacy feature macro.*/ - #define _BSD_SOURCE -+/* New feature macro that provides everything _BSD_SOURCE and -+ * _SVID_SOURCE provided and possibly more. */ -+#define _DEFAULT_SOURCE - - #include <features.h> - #include <sys/types.h> diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-Resend-UPDATE-message-when-received-EINTR-message.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-Resend-UPDATE-message-when-received-EINTR-message.patch deleted file mode 100644 index e82db087c5..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-Resend-UPDATE-message-when-received-EINTR-message.patch +++ /dev/null @@ -1,220 +0,0 @@ -racoon: Resend UPDATE message when received EINTR message - -Upstream-Status: Pending - -While kernel is processing the UPDATE message which is sent from racoon, -it maybe interrupted by system signal and if this case happens, -kernel responds with an EINTR message to racoon and kernel fails to -establish the corresponding SA. -Fix this problem by resend the UPDATE message when EINTR(Interrupted -system call) error happens. - -Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com> ---- ---- a/src/libipsec/libpfkey.h -+++ b/src/libipsec/libpfkey.h -@@ -92,6 +92,12 @@ - u_int16_t ctxstrlen; /* length of security context string */ - }; - -+struct update_msg_info { -+ struct sadb_msg *update_msg; -+ int so; -+ int len; -+}; -+ - /* The options built into libipsec */ - extern int libipsec_opt; - #define LIBIPSEC_OPT_NATT 0x01 ---- a/src/libipsec/pfkey.c -+++ b/src/libipsec/pfkey.c -@@ -1219,7 +1219,8 @@ - } - #endif - -- -+struct update_msg_info update_msg_send = {NULL, 0, 0}; -+ - /* sending SADB_ADD or SADB_UPDATE message to the kernel */ - static int - pfkey_send_x1(struct pfkey_send_sa_args *sa_parms) -@@ -1483,10 +1484,24 @@ - - /* send message */ - len = pfkey_send(sa_parms->so, newmsg, len); -- free(newmsg); - -- if (len < 0) -- return -1; -+ if (newmsg->sadb_msg_type == SADB_UPDATE) { -+ if (update_msg_send.update_msg) -+ free(update_msg_send.update_msg); -+ update_msg_send.update_msg = newmsg; -+ update_msg_send.so = sa_parms->so; -+ update_msg_send.len = len; -+ -+ if (len < 0) { -+ free(update_msg_send.update_msg); -+ update_msg_send.update_msg = NULL; -+ return -1; -+ } -+ } else { -+ free(newmsg); -+ if (len < 0) -+ return -1; -+ } - - __ipsec_errcode = EIPSEC_NO_ERROR; - return len; ---- a/src/racoon/session.c -+++ b/src/racoon/session.c -@@ -100,6 +100,8 @@ - - #include "sainfo.h" - -+extern struct update_msg_info update_msg_send; -+ - struct fd_monitor { - int (*callback)(void *ctx, int fd); - void *ctx; -@@ -348,6 +350,11 @@ - close_sockets(); - backupsa_clean(); - -+ if (update_msg_send.update_msg) { -+ free(update_msg_send.update_msg); -+ update_msg_send.update_msg = NULL; -+ } -+ - plog(LLV_INFO, LOCATION, NULL, "racoon process %d shutdown\n", getpid()); - - exit(0); ---- a/src/racoon/pfkey.c -+++ b/src/racoon/pfkey.c -@@ -103,10 +103,12 @@ - #include "crypto_openssl.h" - #include "grabmyaddr.h" -+#include "../libipsec/libpfkey.h" - - #if defined(SADB_X_EALG_RIJNDAELCBC) && !defined(SADB_X_EALG_AESCBC) - #define SADB_X_EALG_AESCBC SADB_X_EALG_RIJNDAELCBC - #endif - -+extern struct update_msg_info update_msg_send; - /* prototype */ - static u_int ipsecdoi2pfkey_aalg __P((u_int)); - static u_int ipsecdoi2pfkey_ealg __P((u_int)); -@@ -253,6 +255,13 @@ - s_pfkey_type(msg->sadb_msg_type), - strerror(msg->sadb_msg_errno)); - -+ if (msg->sadb_msg_errno == EINTR && -+ update_msg_send.update_msg) { -+ plog(LLV_DEBUG, LOCATION, NULL, -+ "pfkey update resend\n"); -+ send(update_msg_send.so, (void *)update_msg_send.update_msg, (socklen_t)update_msg_send.len, 0); -+ } -+ - goto end; - } - -@@ -498,6 +507,11 @@ - { - flushsp(); - -+ if (update_msg_send.update_msg) { -+ free(update_msg_send.update_msg); -+ update_msg_send.update_msg = NULL; -+ } -+ - if (pfkey_send_spddump(lcconf->sock_pfkey) < 0) { - plog(LLV_ERROR, LOCATION, NULL, - "libipsec sending spddump failed: %s\n", -@@ -1295,6 +1309,8 @@ - return 0; - } - -+int update_received = 0; -+ - static int - pk_recvupdate(mhp) - caddr_t *mhp; -@@ -1307,6 +1323,13 @@ - int incomplete = 0; - struct saproto *pr; - -+ update_received = 1; -+ -+ if (update_msg_send.update_msg) { -+ free(update_msg_send.update_msg); -+ update_msg_send.update_msg = NULL; -+ } -+ - /* ignore this message because of local test mode. */ - if (f_local) - return 0; -@@ -4163,3 +4186,8 @@ - - return buf; - } -+ -+int receive_from_isakmp() -+{ -+ return pfkey_handler(NULL, lcconf->sock_pfkey); -+} ---- a/src/racoon/pfkey.h -+++ b/src/racoon/pfkey.h -@@ -71,5 +71,6 @@ - extern u_int32_t pk_getseq __P((void)); - extern const char *sadbsecas2str - __P((struct sockaddr *, struct sockaddr *, int, u_int32_t, int)); -+extern int receive_from_isakmp __P((void)); - - #endif /* _PFKEY_H */ ---- a/src/racoon/isakmp_quick.c -+++ b/src/racoon/isakmp_quick.c -@@ -774,6 +774,8 @@ - return error; - } - -+extern int update_received; -+ - /* - * send to responder - * HDR*, HASH(3) -@@ -892,6 +894,11 @@ - } - plog(LLV_DEBUG, LOCATION, NULL, "pfkey update sent.\n"); - -+ while (!update_received) -+ receive_from_isakmp(); -+ -+ update_received = 0; -+ - /* Do ADD for responder */ - if (pk_sendadd(iph2) < 0) { - plog(LLV_ERROR, LOCATION, NULL, "pfkey add failed.\n"); -@@ -1035,6 +1042,11 @@ - } - plog(LLV_DEBUG, LOCATION, NULL, "pfkey update sent.\n"); - -+ while (!update_received) -+ receive_from_isakmp(); -+ -+ update_received = 0; -+ - /* Do ADD for responder */ - if (pk_sendadd(iph2) < 0) { - plog(LLV_ERROR, LOCATION, NULL, "pfkey add failed.\n"); -@@ -1989,6 +2001,11 @@ - } - plog(LLV_DEBUG, LOCATION, NULL, "pfkey update sent.\n"); - -+ while (!update_received) -+ receive_from_isakmp(); -+ -+ update_received = 0; -+ - /* Do ADD for responder */ - if (pk_sendadd(iph2) < 0) { - plog(LLV_ERROR, LOCATION, NULL, "pfkey add failed.\n"); diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-check-invalid-ivm.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-check-invalid-ivm.patch deleted file mode 100644 index e272bc20fa..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-check-invalid-ivm.patch +++ /dev/null @@ -1,26 +0,0 @@ -Subject: [PATCH] ipsec-tools: racoon: check several invalid ivm - -Upstream-Status: Pending - -Add checking for invalid ivm, or it will crash racoon. - -Signed-off-by: Ming Liu <ming.liu@windriver.com> ---- - isakmp_cfg.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff -urpN a/src/racoon/isakmp_cfg.c b/src/racoon/isakmp_cfg.c ---- a/src/racoon/isakmp_cfg.c -+++ b/src/racoon/isakmp_cfg.c -@@ -171,6 +171,11 @@ isakmp_cfg_r(iph1, msg) - iph1->mode_cfg->last_msgid != packet->msgid ) - iph1->mode_cfg->ivm = - isakmp_cfg_newiv(iph1, packet->msgid); -+ if(iph1->mode_cfg->ivm == NULL) { -+ plog(LLV_ERROR, LOCATION, NULL, -+ "failed to create new IV\n"); -+ return; -+ } - ivm = iph1->mode_cfg->ivm; - - dmsg = oakley_do_decrypt(iph1, msg, ivm->iv, ivm->ive); diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-check-invalid-pointers.patch b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-check-invalid-pointers.patch deleted file mode 100644 index de1bdb4077..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-check-invalid-pointers.patch +++ /dev/null @@ -1,61 +0,0 @@ -Subject: [PATCH] ipsec-tools: racoon: check several invalid pointers - -Upstream-Status: Pending - -Add checking for invalid pointers, or it will crash racoon. - -Signed-off-by: Ming Liu <ming.liu@windriver.com> ---- - ipsec_doi.c | 5 +++-- - isakmp_cfg.c | 7 +++++++ - isakmp_quick.c | 6 ++++-- - 3 files changed, 14 insertions(+), 4 deletions(-) - -diff -urpN a/src/racoon/ipsec_doi.c b/src/racoon/ipsec_doi.c ---- a/src/racoon/ipsec_doi.c -+++ b/src/racoon/ipsec_doi.c -@@ -3374,8 +3374,9 @@ ipsecdoi_chkcmpids( idt, ids, exact ) - - /* handle wildcard IDs */ - -- if (idt == NULL || ids == NULL) -- { -+ if (idt == NULL || ids == NULL || -+ idt->v == NULL || idt->l == 0 || -+ ids->v == NULL || ids->l == 0) { - if( !exact ) - { - plog(LLV_DEBUG, LOCATION, NULL, -diff -urpN a/src/racoon/isakmp_cfg.c b/src/racoon/isakmp_cfg.c ---- a/src/racoon/isakmp_cfg.c -+++ b/src/racoon/isakmp_cfg.c -@@ -1138,6 +1138,13 @@ isakmp_cfg_newiv(iph1, msgid) - return NULL; - } - -+ if (iph1->ivm == NULL || iph1->ivm->iv == NULL || -+ iph1->ivm->iv->v == NULL || iph1->ivm->iv->l == 0) { -+ plog(LLV_ERROR, LOCATION, NULL, -+ "isakmp_cfg_newiv called with invalid IV management\n"); -+ return NULL; -+ } -+ - if (ics->ivm != NULL) - oakley_delivm(ics->ivm); - -diff -urpN a/src/racoon/isakmp_quick.c b/src/racoon/isakmp_quick.c ---- a/src/racoon/isakmp_quick.c -+++ b/src/racoon/isakmp_quick.c -@@ -2243,8 +2243,10 @@ get_proposal_r(iph2) - int error = ISAKMP_INTERNAL_ERROR; - - /* check the existence of ID payload */ -- if ((iph2->id_p != NULL && iph2->id == NULL) -- || (iph2->id_p == NULL && iph2->id != NULL)) { -+ if ((iph2->id_p != NULL && -+ (iph2->id == NULL || iph2->id->v == NULL || iph2->id->l == 0)) || -+ (iph2->id != NULL && -+ (iph2->id_p == NULL || iph2->id_p->v == NULL || iph2->id_p->l == 0))) { - plog(LLV_ERROR, LOCATION, NULL, - "Both IDs wasn't found in payload.\n"); - return ISAKMP_NTYPE_INVALID_ID_INFORMATION; diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf deleted file mode 100644 index 6b507508b1..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf +++ /dev/null @@ -1,8 +0,0 @@ -# Defaults for racoon service -# sourced by racoon.service -# installed at /etc/default/racoon by the maintainer scripts -# -# This is a POSIX shell fragment -# -# Arguments to pass to racoon -RACOON_ARGS="" diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf.sample b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf.sample deleted file mode 100644 index 2948a4a35b..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf.sample +++ /dev/null @@ -1,40 +0,0 @@ -# -# NOTE: This file will not be used if you use racoon-tool(8) to manage your -# IPsec connections. racoon-tool will process racoon-tool.conf(5) and -# generate a configuration (/var/lib/racoon/racoon.conf) and use it, instead -# of this file. -# -# Simple racoon.conf -# -# -# Please look in /usr/share/doc/racoon/examples for -# examples that come with the source. -# -# Please read racoon.conf(5) for details, and alsoread setkey(8). -# -# -# Also read the Linux IPSEC Howto up at -# http://www.ipsec-howto.org/t1.html -# -log notify; -path pre_shared_key "/etc/racoon/psk.txt"; -path certificate "/etc/racoon/certs"; - -#remote 172.31.1.1 { -# exchange_mode main,aggressive; -# proposal { -# encryption_algorithm 3des; -# hash_algorithm sha1; -# authentication_method pre_shared_key; -# dh_group modp1024; -# } -# generate_policy off; -#} -# -#sainfo address 192.168.203.10[any] any address 192.168.22.0/24[any] any { -# pfs_group modp768; -# encryption_algorithm 3des; -# authentication_algorithm hmac_md5; -# compression_algorithm deflate; -#} - diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.service b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.service deleted file mode 100644 index a10e770279..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=Racoon IKEv1 key management daemon for IPSEC -After=syslog.target network.target - -[Service] -Type=forking -EnvironmentFile=-@SYSCONFDIR@/default/racoon -ExecStart=@SBINDIR@/racoon $RACOON_ARGS - -[Install] -WantedBy=multi-user.target diff --git a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb b/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb deleted file mode 100644 index a6d473b594..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb +++ /dev/null @@ -1,98 +0,0 @@ -DESCRIPTION = "IPsec-Tools is a port of KAME's IPsec utilities to the \ -Linux-2.6 IPsec implementation." -HOMEPAGE = "http://ipsec-tools.sourceforge.net/" -SECTION = "net" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://src/libipsec/pfkey.c;beginline=6;endline=31;md5=bc9b7ff40beff19fe6bc6aef26bd2b24" - -DEPENDS = "virtual/kernel openssl readline flex-native bison-native" - -PACKAGE_ARCH = "${MACHINE_ARCH}" - -SRC_URI = "http://ftp.netbsd.org/pub/NetBSD/misc/ipsec-tools/0.8/ipsec-tools-${PV}.tar.bz2 \ - file://0002-Don-t-link-against-libfl.patch \ - file://configure.patch \ - file://0001-racoon-pfkey-avoid-potential-null-pointer-dereferenc.patch \ - file://racoon-check-invalid-pointers.patch \ - file://racoon-check-invalid-ivm.patch \ - file://glibc-2.20.patch \ - file://racoon-Resend-UPDATE-message-when-received-EINTR-message.patch \ - file://racoon.conf.sample \ - file://racoon.conf \ - file://racoon.service \ - file://fix-CVE-2015-4047.patch \ - file://0001-Fix-build-with-clang.patch \ - file://0001-Fix-header-issues-found-with-musl-libc.patch \ - file://0002-cfparse-clear-memory-equal-to-size-of-array.patch \ - file://fix-CVE-2016-10396.patch \ - file://0001-Disable-gcc8-specific-warnings.patch \ - file://0001-ipsec-tools-add-openssl-1.1-support.patch \ - " -SRC_URI[md5sum] = "d53ec14a0a3ece64e09e5e34b3350b41" -SRC_URI[sha256sum] = "8eb6b38716e2f3a8a72f1f549c9444c2bc28d52c9536792690564c74fe722f2d" - -inherit autotools systemd - -# Options: -# --enable-adminport enable admin port -# --enable-rc5 enable RC5 encryption (patented) -# --enable-idea enable IDEA encryption (patented) -# --enable-gssapi enable GSS-API authentication -# --enable-hybrid enable hybrid, both mode-cfg and xauth support -# --enable-frag enable IKE fragmentation payload support -# --enable-stats enable statistics logging function -# --enable-dpd enable dead peer detection -# --enable-samode-unspec enable to use unspecified a mode of SA -# --disable-ipv6 disable ipv6 support -# --enable-natt enable NAT-Traversal (yes/no/kernel) -# --enable-natt-versions=list list of supported NAT-T versions delimited by coma. -# --with-kernel-headers=/lib/modules/<uname>/build/include -# where your Linux Kernel headers are installed -# --with-readline support readline input (yes by default) -# --with-flex use directiory (default: no) -# --with-flexlib=<LIB> specify flex library. -# --with-openssl=DIR specify OpenSSL directory -# --with-libradius=DIR specify libradius path (like/usr/pkg) -# --with-libpam=DIR specify libpam path (like/usr/pkg) -# -# Note: if you give it the actual kernel headers it won't build, it actually -# needs to point at the linux-libc-headers version of the kernel headers. -# -EXTRA_OECONF = "--with-kernel-headers=${STAGING_INCDIR} \ - --with-readline \ - --with-openssl=${STAGING_LIBDIR}/.. \ - --without-libradius \ - --disable-security-context \ - --enable-shared \ - --enable-dpd \ - --enable-natt=yes \ - --sysconfdir=${sysconfdir}/racoon \ - ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '--enable-ipv6=yes', '', d)}" - -# See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=530527 -CFLAGS += "-fno-strict-aliasing" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[pam] = "--with-libpam,--without-libpam,libpam," -PACKAGECONFIG[selinux] = "--enable-security-context,--disable-security-context,libselinux," - -SYSTEMD_SERVICE_${PN} = "racoon.service" - -do_install_append() { - install -d ${D}${sysconfdir}/racoon - install -m 0644 ${WORKDIR}/racoon.conf.sample ${D}${sysconfdir}/racoon/racoon.conf - - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/racoon.service ${D}${systemd_unitdir}/system - - sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/racoon.service - sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/racoon.service - - install -d ${D}${sysconfdir}/default/ - install -m 0644 ${WORKDIR}/racoon.conf ${D}${sysconfdir}/default/racoon - fi -} - -FILES_${PN} += "${sysconfdir}/racoon/racoon.conf \ - ${sysconfdir}/default/racoon" diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.4.1.bb b/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.4.1.bb index 3c7e5455e9..f3608c6abc 100644 --- a/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.4.1.bb +++ b/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.4.1.bb @@ -5,6 +5,8 @@ LICENSE = "LGPL-3.0+ & LGPL-2.1+ & GPL-3.0+" DEPENDS += "libtdb libtalloc libtevent popt" RDEPENDS_pyldb += "python samba" +RCONFLICTS_${PN} = "samba" +RCONFLICTS_pyldb = "samba-python" SRC_URI = "http://samba.org/ftp/ldb/ldb-${PV}.tar.gz \ file://do-not-import-target-module-while-cross-compile.patch \ diff --git a/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.87.bb b/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.92.bb index 9d3275e2d2..2bc7d97879 100644 --- a/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.87.bb +++ b/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.92.bb @@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ PV .= "+git${SRCPV}" -SRCREV = "e6d0a7e93129e8023654ebf58dfa8135d1b1af56" +SRCREV = "6cddfc6e8f0e20af4af218b545f83d43b3f9a387" SRC_URI = "git://github.com/traviscross/mtr" S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.17.bb b/meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.19.bb index 356023681b..a6da18ea75 100644 --- a/meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.17.bb +++ b/meta-openembedded/meta-networking/recipes-support/nbd/nbd_3.19.bb @@ -7,8 +7,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" DEPENDS = "glib-2.0" SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "98b74c655ed94a66686c5ba19480d98e" -SRC_URI[sha256sum] = "d95c6bb1a3ab33b953af99b73fb4833e123bd25433513b32d57dbeb1a0a0d189" +SRC_URI[md5sum] = "162da84302abb5b9be06143c7943a642" +SRC_URI[sha256sum] = "b4466412f13e057659f25d35e1e8e181afd62c7179bff22a6add81445ecb8690" inherit autotools pkgconfig diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch b/meta-openembedded/meta-networking/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch deleted file mode 100644 index d4e02be450..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch +++ /dev/null @@ -1,25 +0,0 @@ -Do not install pyc and pyo for python module - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Yi Zhao <yi.zhao@windriver.com> ---- - swig/python/Makefile.am | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/swig/python/Makefile.am b/swig/python/Makefile.am -index da95a81..97a62bf 100644 ---- a/swig/python/Makefile.am -+++ b/swig/python/Makefile.am -@@ -33,8 +33,6 @@ CLEANFILES = OpenIPMI_wrap.c OpenIPMI.py OpenIPMI.pyo OpenIPMI.pyc - install-exec-local: _OpenIPMI.la OpenIPMI.py OpenIPMI.pyc OpenIPMI.pyo - $(INSTALL) -d $(DESTDIR)$(PYTHON_INSTALL_DIR) - $(INSTALL_DATA) OpenIPMI.py "$(DESTDIR)$(PYTHON_INSTALL_DIR)" -- $(INSTALL_DATA) OpenIPMI.pyc "$(DESTDIR)$(PYTHON_INSTALL_DIR)" -- $(INSTALL_DATA) OpenIPMI.pyo "$(DESTDIR)$(PYTHON_INSTALL_DIR)" - if test "x$(PYTHON_GUI_DIR)" = "xopenipmigui"; then \ - $(INSTALL) -d $(DESTDIR)$(bindir); \ - $(INSTALL_SCRIPT) $(srcdir)/openipmigui.py "$(DESTDIR)$(bindir)/openipmigui";\ --- -1.9.1 - diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch b/meta-openembedded/meta-networking/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch index 449142fcfa..2434884248 100644 --- a/meta-openembedded/meta-networking/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch +++ b/meta-openembedded/meta-networking/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch @@ -1,18 +1,23 @@ -Author: Aws Ismail <aws.ismail@windriver.com> -Date: Thu Jun 7 16:00:13 2012 -0400 +From 7854c60c92243adb14ea89e16fc226d2e47dd4f9 Mon Sep 17 00:00:00 2001 +From: Aws Ismail <aws.ismail@windriver.com> +Date: Thu, 7 Jun 2012 16:00:13 -0400 +Subject: [PATCH] Fix symlink install error in cmdlang - This patch fixes the error during the install stage when - creating a symbolic link for opeipmish in openipmi/cmdlang - - Upstream-Status: Pending - - Signed-off-by: Aws Ismail <aws.ismail@windriver.com> +This patch fixes the error during the install stage when +creating a symbolic link for opeipmish in openipmi/cmdlang -Index: OpenIPMI-2.0.24/cmdlang/Makefile.am -=================================================================== ---- OpenIPMI-2.0.24.orig/cmdlang/Makefile.am -+++ OpenIPMI-2.0.24/cmdlang/Makefile.am -@@ -35,6 +35,7 @@ openipmish_LDADD = libOpenIPMIcmdlang.l +Upstream-Status: Pending + +Signed-off-by: Aws Ismail <aws.ismail@windriver.com> +--- + cmdlang/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/cmdlang/Makefile.am b/cmdlang/Makefile.am +index 0ca3827..d9a941f 100644 +--- a/cmdlang/Makefile.am ++++ b/cmdlang/Makefile.am +@@ -35,6 +35,7 @@ openipmish_LDADD = libOpenIPMIcmdlang.la \ # compatability. install-data-local: rm -f $(DESTDIR)$(bindir)/ipmish diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/files/include_sys_types.patch b/meta-openembedded/meta-networking/recipes-support/openipmi/files/include_sys_types.patch index 082511a67b..61b39995a6 100644 --- a/meta-openembedded/meta-networking/recipes-support/openipmi/files/include_sys_types.patch +++ b/meta-openembedded/meta-networking/recipes-support/openipmi/files/include_sys_types.patch @@ -1,12 +1,25 @@ +From 4f41e090e33a00117a27f0c77b6338fb8b495f37 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 2 Jun 2017 21:58:32 -0700 +Subject: [PATCH] openipmi: Fix build with musl + include sys/types.h for u_int32_t ui.c:340:5: error: unknown type name 'u_int32_t'; did you mean 'uint32_t'? u_int32_t addr; ^~~~~~~~~ -Index: OpenIPMI-2.0.24/ui/ui.c -=================================================================== ---- OpenIPMI-2.0.24.orig/ui/ui.c -+++ OpenIPMI-2.0.24/ui/ui.c + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + ui/ui.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/ui/ui.c b/ui/ui.c +index 529ff22..066d118 100644 +--- a/ui/ui.c ++++ b/ui/ui.c @@ -42,6 +42,7 @@ #include <fcntl.h> #include <time.h> diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch b/meta-openembedded/meta-networking/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch index 51a398ba53..c4559c97b7 100644 --- a/meta-openembedded/meta-networking/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch +++ b/meta-openembedded/meta-networking/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch @@ -1,3 +1,6 @@ +From 6542ebe7a0d37dee8e9afb856feb8f6c3d334632 Mon Sep 17 00:00:00 2001 +From: Jackie Huang <jackie.huang@windriver.com> +Date: Mon, 29 Dec 2014 18:16:04 +0800 Subject: [PATCH] ipmi-init: fix the arguments The functions success/failure/warning defined in /etc/init.d/functions @@ -12,7 +15,7 @@ Signed-off-by: Jackie Huang <jackie.huang@windriver.com> 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ipmi.init b/ipmi.init -index 2ebcd94..d8161c5 100644 +index ea10b11..aac9f83 100644 --- a/ipmi.init +++ b/ipmi.init @@ -45,17 +45,17 @@ elif [ -r /etc/init.d/functions ]; then @@ -36,6 +39,4 @@ index 2ebcd94..d8161c5 100644 echo ;; *) --- -1.9.1 diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/files/ipmi_serial_bmc_emu.c-include-readline.h-from-readli.patch b/meta-openembedded/meta-networking/recipes-support/openipmi/files/ipmi_serial_bmc_emu.c-include-readline.h-from-readli.patch new file mode 100644 index 0000000000..e208de8b28 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/openipmi/files/ipmi_serial_bmc_emu.c-include-readline.h-from-readli.patch @@ -0,0 +1,31 @@ +From bebfb3c24582ec4e45d79c5b52135197bf7373da Mon Sep 17 00:00:00 2001 +From: Yi Zhao <yi.zhao@windriver.com> +Date: Fri, 14 Jun 2019 14:17:34 +0800 +Subject: [PATCH] ipmi_serial_bmc_emu.c: include readline.h from readline + +The libedit had been removed and swithed to readline. +We need to include readline.h from readline rather than editline. + +Upstream-Status: Pending + +Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +--- + sample/ipmi_serial_bmc_emu.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sample/ipmi_serial_bmc_emu.c b/sample/ipmi_serial_bmc_emu.c +index e0ae019..1b8bb9a 100644 +--- a/sample/ipmi_serial_bmc_emu.c ++++ b/sample/ipmi_serial_bmc_emu.c +@@ -42,7 +42,7 @@ + #include <unistd.h> + #include <stdlib.h> + #include <sys/select.h> +-#include <editline/readline.h> ++#include <readline/readline.h> + + #define _GNU_SOURCE + #include <getopt.h> +-- +2.7.4 + diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch b/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch index 1fa68f9bac..858adc50a8 100644 --- a/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch +++ b/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch @@ -1,16 +1,19 @@ -Author: Aws Ismail <aws.ismail@windriver.com> -Date: Thu Jun 7 12:28:34 2012 -0400 +From a6ffa3939a3ab2ad6a8d277cd8292b7dad6469c6 Mon Sep 17 00:00:00 2001 +From: Aws Ismail <aws.ismail@windriver.com> +Date: Thu, 7 Jun 2012 12:28:34 -0400 +Subject: [PATCH] Do not build openipmigui man page - This patch was carried over from WRL4.3 (openipmi v2.0.16) - - It was updated for openipmi v2.0.19 - - Disable making openipmigui man page since we don't need it - - Upstream-Status: Pending - - Signed-off-by: Aws Ismail <aws.ismail@windriver.com> - Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +This patch was carried over from WRL4.3 (openipmi v2.0.16) +It was updated for openipmi v2.0.19 +Disable making openipmigui man page since we don't need it + +Upstream-Status: Pending + +Signed-off-by: Aws Ismail <aws.ismail@windriver.com> +Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +--- + man/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/Makefile.am b/man/Makefile.am index 632f55b..5ce79f5 100644 diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch b/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch index 83485a9e60..ce37d5eb28 100644 --- a/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch +++ b/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch @@ -1,4 +1,4 @@ -From aa0dc0783a6ff5fb56c914b640836223e3c192bb Mon Sep 17 00:00:00 2001 +From 6395659ca6d64b20bf78bb640c2cc523d6c1d9c2 Mon Sep 17 00:00:00 2001 From: Jackie Huang <jackie.huang@windriver.com> Date: Mon, 29 Dec 2014 18:16:04 +0800 Subject: [PATCH] remove host path from la_LDFLAGS @@ -7,17 +7,15 @@ Upstream-Status: Inappropriate [ cross compile specific ] Signed-off-by: Jackie Huang <jackie.huang@windriver.com> --- - cmdlang/Makefile.am | 2 +- - glib/Makefile.am | 4 ++-- - tcl/Makefile.am | 2 +- - unix/Makefile.am | 4 ++-- - 4 files changed, 6 insertions(+), 6 deletions(-) + cmdlang/Makefile.am | 3 +-- + unix/Makefile.am | 6 ++---- + 2 files changed, 3 insertions(+), 6 deletions(-) -Index: OpenIPMI-2.0.24/cmdlang/Makefile.am -=================================================================== ---- OpenIPMI-2.0.24.orig/cmdlang/Makefile.am -+++ OpenIPMI-2.0.24/cmdlang/Makefile.am -@@ -15,8 +15,7 @@ libOpenIPMIcmdlang_la_SOURCES = cmdlang. +diff --git a/cmdlang/Makefile.am b/cmdlang/Makefile.am +index d9a941f..21b9531 100644 +--- a/cmdlang/Makefile.am ++++ b/cmdlang/Makefile.am +@@ -15,8 +15,7 @@ libOpenIPMIcmdlang_la_SOURCES = cmdlang.c cmd_domain.c cmd_entity.c cmd_mc.c \ libOpenIPMIcmdlang_la_LIBADD = -lm \ $(top_builddir)/utils/libOpenIPMIutils.la \ $(top_builddir)/lib/libOpenIPMI.la @@ -27,11 +25,11 @@ Index: OpenIPMI-2.0.24/cmdlang/Makefile.am bin_PROGRAMS = openipmish -Index: OpenIPMI-2.0.24/unix/Makefile.am -=================================================================== ---- OpenIPMI-2.0.24.orig/unix/Makefile.am -+++ OpenIPMI-2.0.24/unix/Makefile.am -@@ -10,14 +10,12 @@ lib_LTLIBRARIES = libOpenIPMIposix.la li +diff --git a/unix/Makefile.am b/unix/Makefile.am +index 5128839..bd0f897 100644 +--- a/unix/Makefile.am ++++ b/unix/Makefile.am +@@ -10,14 +10,12 @@ lib_LTLIBRARIES = libOpenIPMIposix.la libOpenIPMIpthread.la libOpenIPMIpthread_la_SOURCES = posix_thread_os_hnd.c selector.c libOpenIPMIpthread_la_LIBADD = -lpthread $(GDBM_LIB) \ $(top_builddir)/utils/libOpenIPMIutils.la $(RT_LIB) diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmigui-not-compile-pyc-pyo.patch b/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmigui-not-compile-pyc-pyo.patch deleted file mode 100644 index 3894075906..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/openipmi/files/openipmigui-not-compile-pyc-pyo.patch +++ /dev/null @@ -1,26 +0,0 @@ -openipmi load swig/python/.libs/_OpenIPMI.so to create .pyc and .pyo files. -It fails when multilib is enable: - -| ImportError: .../lib32-openipmi/2.0.25-r0/OpenIPMI-2.0.25/swig/python/.libs/_OpenIPMI.so: wrong ELF class: ELFCLASS32 - -Don't compile and install .pyc and .pyo files to fix the failure. - -Upstream-Status: Inappropriate [OE specific] - -Signed-off-by: Kai Kang <kai.kang@windriver.com> -diff --git a/swig/python/openipmigui/Makefile.am b/swig/python/openipmigui/Makefile.am -index 570e7b9..88258bf 100644 ---- a/swig/python/openipmigui/Makefile.am -+++ b/swig/python/openipmigui/Makefile.am -@@ -34,9 +34,9 @@ localcopy: - fi \ - done - --all-local: localcopy $(PYC_FILES) $(PYO_FILES) -+all-local: localcopy - --install-exec-local: $(EXTRA_DIST) $(PYC_FILES) $(PYO_FILES) -+install-exec-local: $(EXTRA_DIST) - $(INSTALL) -d $(DESTDIR)$(PYTHON_INSTALL_DIR)/openipmigui - $(INSTALL_DATA) $^ $(DESTDIR)$(PYTHON_INSTALL_DIR)/openipmigui - diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.25.bb b/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.27.bb index f0426ce362..51cc256890 100644 --- a/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.25.bb +++ b/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.27.bb @@ -13,6 +13,7 @@ DEPENDS = " \ popt \ python \ swig-native \ + readline \ " LICENSE = "GPLv2 & LGPLv2.1 & BSD" @@ -27,16 +28,16 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/openipmi/OpenIPMI-${PV}.tar.gz \ file://openipmi-no-openipmigui-man.patch \ file://openipmi-remove-host-path-from-la_LDFLAGS.patch \ file://ipmi-init-fix-the-arguments.patch \ - file://do-not-install-pyc-and-pyo.patch \ file://include_sys_types.patch \ - file://openipmigui-not-compile-pyc-pyo.patch \ + file://ipmi_serial_bmc_emu.c-include-readline.h-from-readli.patch \ file://openipmi-helper \ file://ipmi.service \ " S = "${WORKDIR}/OpenIPMI-${PV}" -SRC_URI[md5sum] = "1461ac4d78fc516646fd0a6e605a8b05" -SRC_URI[sha256sum] = "f0f1a0ec732409930b7a31a6daa6cf39b585f52059b62a5f092b7ece21aa75a5" + +SRC_URI[md5sum] = "d525ceaa07df5440674e7e68a6772fe7" +SRC_URI[sha256sum] = "f3b1fafaaec2e2bac32fec5a86941ad8b8cb64543470bd6d819d7b166713d20b" inherit autotools-brokensep pkgconfig pythonnative perlnative update-rc.d systemd cpan-base diff --git a/meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb b/meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb index 30d0a76752..be9dba32f1 100644 --- a/meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb +++ b/meta-openembedded/meta-networking/recipes-support/spice/spice-protocol_git.bb @@ -13,9 +13,9 @@ architectures." LICENSE = "BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=b37311cb5604f3e5cc2fb0fd23527e95" -PV = "0.12.13+git${SRCPV}" +PV = "0.14.0+git${SRCPV}" -SRCREV = "87441524f4e7b79658e42bd8f1f6c3e3c8649aa5" +SRCREV = "f72ece993aeaf23f77e2845562b20e5563e52ba0" SRC_URI = " \ git://anongit.freedesktop.org/spice/spice-protocol \ diff --git a/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch b/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch index 505b7c890b..e63cbe3b72 100644 --- a/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch +++ b/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch @@ -14,21 +14,19 @@ Upstream-Status: Pending server/red-client.c | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) -diff --git a/server/red-channel.c b/server/red-channel.c -index 1b38f04d..11dc667b 100644 --- a/server/red-channel.c +++ b/server/red-channel.c -@@ -192,7 +192,7 @@ red_channel_constructed(GObject *object) +@@ -204,7 +204,7 @@ red_channel_constructed(GObject *object) { RedChannel *self = RED_CHANNEL(object); -- red_channel_debug(self, "thread_id 0x%lx", self->priv->thread_id); -+ red_channel_debug(self, "thread_id 0x%lx", (unsigned long)self->priv->thread_id); +- red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x", self->priv->thread_id); ++ red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x", (unsigned long)self->priv->thread_id); RedChannelClass *klass = RED_CHANNEL_GET_CLASS(self); -@@ -475,7 +475,8 @@ void red_channel_remove_client(RedChannel *channel, RedChannelClient *rcc) - red_channel_warning(channel, "channel->thread_id (0x%lx) != pthread_self (0x%lx)." +@@ -479,7 +479,8 @@ void red_channel_remove_client(RedChanne + "pthread_self (0x%" G_GSIZE_MODIFIER "x)." "If one of the threads is != io-thread && != vcpu-thread, " "this might be a BUG", - channel->priv->thread_id, pthread_self()); @@ -37,12 +35,10 @@ index 1b38f04d..11dc667b 100644 } spice_return_if_fail(channel); link = g_list_find(channel->priv->clients, rcc); -diff --git a/server/red-client.c b/server/red-client.c -index ddfc5400..76986640 100644 --- a/server/red-client.c +++ b/server/red-client.c -@@ -180,7 +180,7 @@ void red_client_migrate(RedClient *client) - spice_warning("client->thread_id (0x%lx) != pthread_self (0x%lx)." +@@ -180,7 +180,7 @@ void red_client_migrate(RedClient *clien + "pthread_self (0x%" G_GSIZE_MODIFIER "x)." "If one of the threads is != io-thread && != vcpu-thread," " this might be a BUG", - client->thread_id, pthread_self()); @@ -50,8 +46,8 @@ index ddfc5400..76986640 100644 } FOREACH_CHANNEL_CLIENT(client, rcc) { if (red_channel_client_is_connected(rcc)) { -@@ -199,8 +199,8 @@ void red_client_destroy(RedClient *client) - spice_warning("client->thread_id (0x%lx) != pthread_self (0x%lx)." +@@ -199,8 +199,8 @@ void red_client_destroy(RedClient *clien + "pthread_self (0x%" G_GSIZE_MODIFIER "x)." "If one of the threads is != io-thread && != vcpu-thread," " this might be a BUG", - client->thread_id, @@ -61,6 +57,3 @@ index ddfc5400..76986640 100644 } red_client_set_disconnecting(client); FOREACH_CHANNEL_CLIENT(client, rcc) { --- -2.17.1 - diff --git a/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-Fix-compile-errors-on-Linux-32bit-system.patch b/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-Fix-compile-errors-on-Linux-32bit-system.patch new file mode 100644 index 0000000000..d04bee95fa --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-Fix-compile-errors-on-Linux-32bit-system.patch @@ -0,0 +1,96 @@ +From a2af005b5d4a62839e56f42a43df793356e78f58 Mon Sep 17 00:00:00 2001 +From: "Hongzhi.Song" <hongzhi.song@windriver.com> +Date: Tue, 4 Jun 2019 03:58:17 -0400 +Subject: [PATCH] Fix compile errors on Linux 32bit system + +There are folowing compile errors on Linux 32bit system: + +red-channel.c:207:73: error: format '%x' expects argument of type +'unsigned int', but argument 7 has type 'long unsigned int' [-Werror=format=] +|207| red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x", + ~~~~~~~~~~~~~~~~~~~~~^ + self->priv->thread_id); + ~~~~~~~~~~~~~~~~~~~~~^ + +On 32bit system, #define G_GSIZE_MODIFIER "". But the type of +'self->priv->thread_id' is 'unsigned long int' which should match '%lx' +not '%x'. + +So we should recovery the <0x%" G_GSIZE_MODIFIER "x"> to <0x%lx">. +And others files modification are similar to G_GSIZE_MODIFIER. + +Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com> +--- +Upstream-Status: Submitted [https://lists.freedesktop.org/archives/spice-devel/2019-June/049285.html] + + server/red-channel.c | 6 +++--- + server/red-client.c | 8 ++++---- + server/red-replay-qxl.c | 2 +- + 3 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/server/red-channel.c b/server/red-channel.c +index f81142d..6a03ec2 100644 +--- a/server/red-channel.c ++++ b/server/red-channel.c +@@ -202,7 +202,7 @@ red_channel_constructed(GObject *object) + { + RedChannel *self = RED_CHANNEL(object); + +- red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x", (unsigned long)self->priv->thread_id); ++ red_channel_debug(self, "thread_id 0x%lx", (unsigned long)self->priv->thread_id); + + RedChannelClass *klass = RED_CHANNEL_GET_CLASS(self); + +@@ -473,8 +473,8 @@ void red_channel_remove_client(RedChannel *channel, RedChannelClient *rcc) + + if (!pthread_equal(pthread_self(), channel->priv->thread_id)) { + red_channel_warning(channel, +- "channel->thread_id (0x%" G_GSIZE_MODIFIER "x) != " +- "pthread_self (0x%" G_GSIZE_MODIFIER "x)." ++ "channel->thread_id (0x%lx) != " ++ "pthread_self (0x%lx)." + "If one of the threads is != io-thread && != vcpu-thread, " + "this might be a BUG", + (unsigned long)channel->priv->thread_id, +diff --git a/server/red-client.c b/server/red-client.c +index 2b859cb..ff4da2a 100644 +--- a/server/red-client.c ++++ b/server/red-client.c +@@ -174,8 +174,8 @@ void red_client_migrate(RedClient *client) + RedChannel *channel; + + if (!pthread_equal(pthread_self(), client->thread_id)) { +- spice_warning("client->thread_id (0x%" G_GSIZE_MODIFIER "x) != " +- "pthread_self (0x%" G_GSIZE_MODIFIER "x)." ++ spice_warning("client->thread_id (0x%lx) != " ++ "pthread_self (0x%lx)." + "If one of the threads is != io-thread && != vcpu-thread," + " this might be a BUG", + (unsigned long)client->thread_id, (unsigned long)pthread_self()); +@@ -193,8 +193,8 @@ void red_client_destroy(RedClient *client) + RedChannelClient *rcc; + + if (!pthread_equal(pthread_self(), client->thread_id)) { +- spice_warning("client->thread_id (0x%" G_GSIZE_MODIFIER "x) != " +- "pthread_self (0x%" G_GSIZE_MODIFIER "x)." ++ spice_warning("client->thread_id (0x%lx) != " ++ "pthread_self (0x%lx)." + "If one of the threads is != io-thread && != vcpu-thread," + " this might be a BUG", + (unsigned long)client->thread_id, +diff --git a/server/red-replay-qxl.c b/server/red-replay-qxl.c +index 6d34818..0deb406 100644 +--- a/server/red-replay-qxl.c ++++ b/server/red-replay-qxl.c +@@ -264,7 +264,7 @@ static replay_t read_binary(SpiceReplay *replay, const char *prefix, size_t *siz + exit(1); + } + if ((ret = inflate(&strm, Z_NO_FLUSH)) != Z_STREAM_END) { +- spice_error("inflate error %d (disc: %" G_GSSIZE_FORMAT ")", ++ spice_error("inflate error %d (disc: %li)", + ret, *size - strm.total_out); + if (ret == Z_DATA_ERROR) { + /* last operation may be wrong. since we do the recording +-- +2.8.1 + diff --git a/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-spice-fix-compile-fail-problem.patch b/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-spice-fix-compile-fail-problem.patch deleted file mode 100644 index 1f9d5fdd7b..0000000000 --- a/meta-openembedded/meta-networking/recipes-support/spice/spice/0001-spice-fix-compile-fail-problem.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 7023732c65b4dc509c46a54fb7715da275b5597f Mon Sep 17 00:00:00 2001 -From: Changqing Li <changqing.li@windriver.com> -Date: Thu, 13 Sep 2018 12:39:44 +0800 -Subject: [PATCH] spice: fix compile fail problem - -compile error: -format '%d' expects argument of type 'int', but argument 6 has -type 'long unsigned int' [-Werror=format=] - -spice compile failed on 32bit system, since upstream commit -9541cd2fe(in V0.14.1) change %ld to %PRIdPTR, %PRIdPTR is %d, but argument -strm.total_out is uLong. - -Upstream-Status: Submitted[https://github.com/freedesktop/spice/pull/1] - -Signed-off-by: Changqing Li <changqing.li@windriver.com> ---- - server/red-replay-qxl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/server/red-replay-qxl.c b/server/red-replay-qxl.c -index 1fce76c..bd33b58 100644 ---- a/server/red-replay-qxl.c -+++ b/server/red-replay-qxl.c -@@ -266,7 +266,7 @@ static replay_t read_binary(SpiceReplay *replay, const char *prefix, size_t *siz - exit(1); - } - if ((ret = inflate(&strm, Z_NO_FLUSH)) != Z_STREAM_END) { -- spice_error("inflate error %d (disc: %" PRIdPTR ")", ret, *size - strm.total_out); -+ spice_error("inflate error %d (disc: %ld)", ret, *size - strm.total_out); - if (ret == Z_DATA_ERROR) { - /* last operation may be wrong. since we do the recording - * in red_worker, when there is a shutdown from the vcpu/io thread --- -2.7.4 - diff --git a/meta-openembedded/meta-networking/recipes-support/spice/spice_git.bb b/meta-openembedded/meta-networking/recipes-support/spice/spice_git.bb index 1ad46c2c31..552f81df0a 100644 --- a/meta-openembedded/meta-networking/recipes-support/spice/spice_git.bb +++ b/meta-openembedded/meta-networking/recipes-support/spice/spice_git.bb @@ -13,10 +13,10 @@ architectures." LICENSE = "BSD & LGPLv2.1+" LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" -PV = "0.14.1+git${SRCPV}" +PV = "0.14.2+git${SRCPV}" -SRCREV_spice = "eaa07ef15cfc3bf57a69da2576af66f028787774" -SRCREV_spice-common = "6b93b3fce8909b836ef1d1434d191900d8aa00be" +SRCREV_spice = "7cbd70b931db76c69c89c2d9d5d704f67381a81b" +SRCREV_spice-common = "4fc4c2db36c7f07b906e9a326a9d3dc0ae6a2671" SRCREV_FORMAT = "spice_spice-common" @@ -24,7 +24,7 @@ SRC_URI = " \ git://anongit.freedesktop.org/spice/spice;name=spice \ git://anongit.freedesktop.org/spice/spice-common;destsuffix=git/subprojects/spice-common;name=spice-common \ file://0001-Convert-pthread_t-to-be-numeric.patch \ - file://0001-spice-fix-compile-fail-problem.patch \ + file://0001-Fix-compile-errors-on-Linux-32bit-system.patch \ " S = "${WORKDIR}/git" @@ -37,6 +37,8 @@ DEPENDS_append_class-nativesdk = "nativesdk-openssl" export PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python" export PYTHONPATH="${PKG_CONFIG_SYSROOT_DIR}${libdir}/python2.7/site-packages" +CFLAGS_append = " -Wno-error=address-of-packed-member" + PACKAGECONFIG_class-native = "" PACKAGECONFIG_class-nativesdk = "" PACKAGECONFIG ?= "sasl" @@ -54,4 +56,4 @@ COMPATIBLE_HOST = '(x86_64|i.86).*-linux' BBCLASSEXTEND = "native nativesdk" -EXTRA_OECONF_toolchain-clang += "--disable-werror" +EXTRA_OECONF_append_toolchain-clang = " --disable-werror" |