mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-04 14:39:54 +00:00
librelp: Upgrade to 1.2.18
* Correct the homepage * Remove two backported patches * Backport 0001-testbench-improvements.patch to fix the below error: | ../../git/src/tcp.c:3072:57: error: '%s' directive output may be truncated writing up to 1023 bytes into a region of size 1005 [-Werror=format-truncation=] | snprintf(errmsg, sizeof(errmsg), "error connecting: '%s'", errStr); Signed-off-by: Mingli Yu <mingli.yu@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
-71
@@ -1,71 +0,0 @@
|
||||
From 3e5a0cb440c788e2383e40ab23ac1cf01d96961b Mon Sep 17 00:00:00 2001
|
||||
From: Mingli Yu <mingli.yu@windriver.com>
|
||||
Date: Tue, 24 Jul 2018 01:30:25 -0700
|
||||
Subject: [PATCH] src/tcp.c: fix jump-misses-init error
|
||||
|
||||
Fix below jump-misses-init error
|
||||
|
||||
| In file included from ../../git/src/tcp.c:51:
|
||||
| ../../git/src/tcp.c: In function 'relpTcpConnect':
|
||||
| ../../git/src/relp.h:220:3: error: jump skips variable initialization [-Werror=jump-misses-init]
|
||||
| goto finalize_it; \
|
||||
| ^~~~
|
||||
| ../../git/src/tcp.c:1951:3: note: in expansion of macro 'ABORT_FINALIZE'
|
||||
| ABORT_FINALIZE(RELP_RET_IO_ERR);
|
||||
| ^~~~~~~~~~~~~~
|
||||
| ../../git/src/tcp.c:2005:1: note: label 'finalize_it' defined here
|
||||
| finalize_it:
|
||||
| ^~~~~~~~~~~
|
||||
| ../../git/src/tcp.c:1991:6: note: 'r' declared here
|
||||
| int r = getsockopt(pThis->sock, SOL_SOCKET, SO_ERROR, &so_error, &len);
|
||||
| ^
|
||||
| In file included from ../../git/src/tcp.c:51:
|
||||
| ../../git/src/relp.h:220:3: error: jump skips variable initialization [-Werror=jump-misses-init]
|
||||
| goto finalize_it; \
|
||||
| ^~~~
|
||||
| ../../git/src/tcp.c:1951:3: note: in expansion of macro 'ABORT_FINALIZE'
|
||||
| ABORT_FINALIZE(RELP_RET_IO_ERR);
|
||||
| ^~~~~~~~~~~~~~
|
||||
| ../../git/src/tcp.c:2005:1: note: label 'finalize_it' defined here
|
||||
| finalize_it:
|
||||
| ^~~~~~~~~~~
|
||||
| ../../git/src/tcp.c:1989:12: note: 'len' declared here
|
||||
| socklen_t len = sizeof so_error;
|
||||
| ^~~
|
||||
|
||||
Upstream-Status: Submitted[https://github.com/rsyslog/librelp/pull/117]
|
||||
|
||||
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
|
||||
---
|
||||
src/tcp.c | 7 ++++---
|
||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/tcp.c b/src/tcp.c
|
||||
index f35eb84..fb34dc7 100644
|
||||
--- a/src/tcp.c
|
||||
+++ b/src/tcp.c
|
||||
@@ -1936,6 +1936,9 @@ relpTcpConnect(relpTcp_t *const pThis,
|
||||
struct addrinfo hints;
|
||||
struct addrinfo *reslocal = NULL;
|
||||
struct pollfd pfd;
|
||||
+ int so_error;
|
||||
+ socklen_t len = sizeof so_error;
|
||||
+ int r;
|
||||
|
||||
ENTER_RELPFUNC;
|
||||
RELPOBJ_assert(pThis, Tcp);
|
||||
@@ -1985,10 +1988,8 @@ relpTcpConnect(relpTcp_t *const pThis,
|
||||
ABORT_FINALIZE(RELP_RET_TIMED_OUT);
|
||||
}
|
||||
|
||||
- int so_error;
|
||||
- socklen_t len = sizeof so_error;
|
||||
|
||||
- int r = getsockopt(pThis->sock, SOL_SOCKET, SO_ERROR, &so_error, &len);
|
||||
+ r = getsockopt(pThis->sock, SOL_SOCKET, SO_ERROR, &so_error, &len);
|
||||
if (r == -1 || so_error != 0) {
|
||||
pThis->pEngine->dbgprint("socket has an error %d\n", so_error);
|
||||
ABORT_FINALIZE(RELP_RET_IO_ERR);
|
||||
--
|
||||
2.17.1
|
||||
|
||||
-53
@@ -1,53 +0,0 @@
|
||||
From d8950ad273d79ec516468289adbd427e681dbc66 Mon Sep 17 00:00:00 2001
|
||||
From: Mingli Yu <mingli.yu@windriver.com>
|
||||
Date: Mon, 30 Jul 2018 01:22:56 -0700
|
||||
Subject: [PATCH] src/tcp.c: increase the size of szHname
|
||||
|
||||
Increase the size of szHname to fix below
|
||||
error:
|
||||
| ../../git/src/tcp.c: In function 'relpTcpSetRemHost':
|
||||
| ../../git/src/tcp.c:352:57: error: '%s' directive output may be truncated writing up to 1024 bytes into a region of size 1011 [-Werror=format-truncation=]
|
||||
| snprintf((char*)szHname, NI_MAXHOST, "[MALICIOUS:IP=%s]", szIP);
|
||||
| ^~ ~~~~
|
||||
| In file included from /poky-build/tmp/work/i586-poky-linux/librelp/1.2.16-r0/recipe-sysroot/usr/include/stdio.h:862,
|
||||
| from ../../git/src/tcp.c:38:
|
||||
| /poky-build/tmp/work/i586-poky-linux/librelp/1.2.16-r0/recipe-sysroot/usr/include/bits/stdio2.h:64:10: note: '__builtin___snprintf_chk' output between 16 and 1040 bytes into a destination of size 1025
|
||||
| return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
| __bos (__s), __fmt, __va_arg_pack ());
|
||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
| cc1: all warnings being treated as errors
|
||||
| Makefile:536: recipe for target 'librelp_la-tcp.lo' failed
|
||||
|
||||
Upstream-Status: Submitted[https://github.com/rsyslog/librelp/pull/118]
|
||||
|
||||
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
|
||||
---
|
||||
src/tcp.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/tcp.c b/src/tcp.c
|
||||
index fb34dc7..2c38b0b 100644
|
||||
--- a/src/tcp.c
|
||||
+++ b/src/tcp.c
|
||||
@@ -319,7 +319,7 @@ relpTcpSetRemHost(relpTcp_t *const pThis, struct sockaddr *pAddr)
|
||||
relpEngine_t *pEngine;
|
||||
int error;
|
||||
unsigned char szIP[NI_MAXHOST] = "";
|
||||
- unsigned char szHname[NI_MAXHOST] = "";
|
||||
+ unsigned char szHname[1045] = "";
|
||||
struct addrinfo hints, *res;
|
||||
size_t len;
|
||||
|
||||
@@ -349,7 +349,7 @@ relpTcpSetRemHost(relpTcp_t *const pThis, struct sockaddr *pAddr)
|
||||
if(getaddrinfo((char*)szHname, NULL, &hints, &res) == 0) {
|
||||
freeaddrinfo (res);
|
||||
/* OK, we know we have evil, so let's indicate this to our caller */
|
||||
- snprintf((char*)szHname, NI_MAXHOST, "[MALICIOUS:IP=%s]", szIP);
|
||||
+ snprintf((char*)szHname, sizeof(szHname), "[MALICIOUS:IP=%s]", szIP);
|
||||
pEngine->dbgprint("Malicious PTR record, IP = \"%s\" HOST = \"%s\"", szIP, szHname);
|
||||
iRet = RELP_RET_MALICIOUS_HNAME;
|
||||
}
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,164 @@
|
||||
From 1e6be18ed243dc562ff2976b46850bfd2e576664 Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Gerhards <rgerhards@adiscon.com>
|
||||
Date: Thu, 15 Nov 2018 12:23:41 +0100
|
||||
Subject: [PATCH] testbench improvements
|
||||
|
||||
Most importantly, the test receiver process is now terminated
|
||||
gracefully. Without that, gcov can never pick up correct
|
||||
coverage data.
|
||||
|
||||
Upstream-Status: Backport[https://github.com/rsyslog/librelp/commit/1e6be18ed243dc562ff2976b46850bfd2e576664]
|
||||
|
||||
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
|
||||
---
|
||||
src/tcp.c | 4 ++--
|
||||
tests/Makefile.am | 3 ++-
|
||||
tests/receive.c | 29 +++++++++++++++++++++++++++--
|
||||
tests/selftest_receive_usage.sh | 5 +++++
|
||||
tests/test-framework.sh | 4 ++--
|
||||
5 files changed, 38 insertions(+), 7 deletions(-)
|
||||
create mode 100755 tests/selftest_receive_usage.sh
|
||||
|
||||
diff --git a/src/tcp.c b/src/tcp.c
|
||||
index f10a720..0ea92ea 100644
|
||||
--- a/src/tcp.c
|
||||
+++ b/src/tcp.c
|
||||
@@ -3027,7 +3027,7 @@ relpTcpConnect(relpTcp_t *const pThis,
|
||||
struct addrinfo hints;
|
||||
struct addrinfo *reslocal = NULL;
|
||||
struct pollfd pfd;
|
||||
- char errmsg[1024];
|
||||
+ char errmsg[1424];
|
||||
int so_error;
|
||||
socklen_t len = sizeof so_error;
|
||||
int r;
|
||||
@@ -3067,7 +3067,7 @@ relpTcpConnect(relpTcp_t *const pThis,
|
||||
}
|
||||
if(connect(pThis->sock, res->ai_addr, res->ai_addrlen) == -1) {
|
||||
if(errno != EINPROGRESS) {
|
||||
- char errStr[1024];
|
||||
+ char errStr[1200];
|
||||
_relpEngine_strerror_r(errno, errStr, sizeof(errStr));
|
||||
snprintf(errmsg, sizeof(errmsg), "error connecting: '%s'", errStr);
|
||||
callOnErr(pThis, errmsg, RELP_RET_IO_ERR);
|
||||
diff --git a/tests/Makefile.am b/tests/Makefile.am
|
||||
index 64deb19..51fd78f 100644
|
||||
--- a/tests/Makefile.am
|
||||
+++ b/tests/Makefile.am
|
||||
@@ -25,7 +25,8 @@ TESTS= basic.sh \
|
||||
long-msg.sh \
|
||||
oversize-msg-abort-errmsg.sh \
|
||||
oversize-msg-accept-errmsg.sh \
|
||||
- truncate-oversize-msg.sh
|
||||
+ truncate-oversize-msg.sh \
|
||||
+ selftest_receive_usage.sh
|
||||
# OpenSSL tests only!
|
||||
if ENABLE_TLS_OPENSSL
|
||||
TESTS += tls-wrong-permittedPeer.sh \
|
||||
diff --git a/tests/receive.c b/tests/receive.c
|
||||
index e56e59c..4b69c99 100644
|
||||
--- a/tests/receive.c
|
||||
+++ b/tests/receive.c
|
||||
@@ -1,6 +1,7 @@
|
||||
/* A minimal RELP receiver using librelp
|
||||
*
|
||||
* Copyright 2014 Mathias Nyman
|
||||
+ * Copyright 2018 Adiscon GmbH
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -24,6 +25,7 @@
|
||||
#include <string.h>
|
||||
#include <limits.h>
|
||||
#include <errno.h>
|
||||
+#include <signal.h>
|
||||
#include "librelp.h"
|
||||
|
||||
#define TRY(f) if(f != RELP_RET_OK) { fprintf(stderr, "receive.c: FAILURE in '%s'\n", #f); ret = 1; goto done; }
|
||||
@@ -31,6 +33,24 @@
|
||||
static FILE *errFile = NULL;
|
||||
static relpEngine_t *pRelpEngine;
|
||||
|
||||
+static void
|
||||
+hdlr_enable(int sig, void (*hdlr)())
|
||||
+{
|
||||
+ struct sigaction sigAct;
|
||||
+ memset(&sigAct, 0, sizeof (sigAct));
|
||||
+ sigemptyset(&sigAct.sa_mask);
|
||||
+ sigAct.sa_handler = hdlr;
|
||||
+ sigaction(sig, &sigAct, NULL);
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+terminate(int sig)
|
||||
+{
|
||||
+ fprintf(stderr, "terminating on signal %d\n", sig);
|
||||
+ relpEngineSetStop(pRelpEngine);
|
||||
+}
|
||||
+
|
||||
+
|
||||
static void __attribute__((format(printf, 1, 2)))
|
||||
dbgprintf(char *fmt, ...)
|
||||
{
|
||||
@@ -237,6 +257,8 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
}
|
||||
|
||||
+ hdlr_enable(SIGTERM, terminate);
|
||||
+
|
||||
TRY(relpEngineConstruct(&pRelpEngine));
|
||||
TRY(relpEngineSetDbgprint(pRelpEngine, verbose ? dbgprintf : NULL));
|
||||
TRY(relpEngineSetEnableCmd(pRelpEngine, (unsigned char*) "syslog", eRelpCmdState_Required));
|
||||
@@ -294,11 +316,14 @@ int main(int argc, char *argv[]) {
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
- TRY(relpEngineRun(pRelpEngine)); /* Abort with ctrl-c */
|
||||
+ TRY(relpEngineRun(pRelpEngine)); /* Abort via SIGHUP */
|
||||
|
||||
- TRY(relpEngineSetStop(pRelpEngine));
|
||||
TRY(relpEngineDestruct(&pRelpEngine));
|
||||
|
||||
+ if(pidFileName != NULL) {
|
||||
+ unlink(pidFileName);
|
||||
+ }
|
||||
+
|
||||
done:
|
||||
return ret;
|
||||
}
|
||||
diff --git a/tests/selftest_receive_usage.sh b/tests/selftest_receive_usage.sh
|
||||
new file mode 100755
|
||||
index 0000000..c4ac8bb
|
||||
--- /dev/null
|
||||
+++ b/tests/selftest_receive_usage.sh
|
||||
@@ -0,0 +1,5 @@
|
||||
+#!/bin/bash
|
||||
+. ${srcdir:=$(pwd)}/test-framework.sh
|
||||
+./receive &>librelp.out.log
|
||||
+check_output "Port is missing"
|
||||
+terminate
|
||||
diff --git a/tests/test-framework.sh b/tests/test-framework.sh
|
||||
index 6abdcf2..d4ab3ec 100644
|
||||
--- a/tests/test-framework.sh
|
||||
+++ b/tests/test-framework.sh
|
||||
@@ -32,7 +32,7 @@ function wait_process_startup_via_pidfile() {
|
||||
# start receiver WITH valgrind, add receiver command line parameters after function name
|
||||
function startup_receiver_valgrind() {
|
||||
printf 'Starting Receiver...\n'
|
||||
- $valgrind ./receive -p $TESTPORT -F receive.pid $OPT_VERBOSE $* 1>>librelp.out.log &
|
||||
+ $valgrind ./receive -p $TESTPORT -F receive.pid $OPT_VERBOSE $* 1>librelp.out.log &
|
||||
export RECEIVE_PID=$!
|
||||
printf "got receive pid $RECEIVE_PID\n"
|
||||
wait_process_startup_via_pidfile receive.pid
|
||||
@@ -43,7 +43,7 @@ function startup_receiver_valgrind() {
|
||||
# start receiver, add receiver command line parameters after function name
|
||||
function startup_receiver() {
|
||||
printf 'Starting Receiver...\n'
|
||||
- ./receive -p $TESTPORT -F receive.pid $OPT_VERBOSE $* 1>>librelp.out.log &
|
||||
+ ./receive -p $TESTPORT -F receive.pid $OPT_VERBOSE $* 1>librelp.out.log &
|
||||
export RECEIVE_PID=$!
|
||||
printf "got receive pid $RECEIVE_PID\n"
|
||||
wait_process_startup_via_pidfile receive.pid
|
||||
--
|
||||
2.17.1
|
||||
|
||||
+3
-4
@@ -1,5 +1,5 @@
|
||||
SUMMARY = "A reliable logging library"
|
||||
HOMEPAGE = "https://github.com/rsyslog/libfastjson"
|
||||
HOMEPAGE = "https://github.com/rsyslog/librelp"
|
||||
|
||||
LICENSE = "GPLv3"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=1fb9c10ed9fd6826757615455ca893a9"
|
||||
@@ -7,11 +7,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=1fb9c10ed9fd6826757615455ca893a9"
|
||||
DEPENDS = "gmp nettle libidn zlib gnutls"
|
||||
|
||||
SRC_URI = "git://github.com/rsyslog/librelp.git;protocol=https \
|
||||
file://0001-src-tcp.c-fix-jump-misses-init-error.patch \
|
||||
file://0001-src-tcp.c-increase-the-size-of-szHname.patch \
|
||||
file://0001-testbench-improvements.patch \
|
||||
"
|
||||
|
||||
SRCREV = "5e849ff060be0c7dce972e194c54fdacfee0adc2"
|
||||
SRCREV = "4b6a81061bccf68cba6fddd27f99fb5dc0d0c3a3"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
Reference in New Issue
Block a user