From 3a0a7a255f2e75eda4f73b57b2cd791fb7e7a25f Mon Sep 17 00:00:00 2001 From: aadroj583 Date: Fri, 19 Dec 2025 12:35:10 +0000 Subject: [PATCH 1/7] Telemetry crashe due to Open SSL engine --- source/protocol/http/Makefile.am | 2 +- source/protocol/http/curlinterface.c | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/source/protocol/http/Makefile.am b/source/protocol/http/Makefile.am index 21ab5382..8c80e44d 100644 --- a/source/protocol/http/Makefile.am +++ b/source/protocol/http/Makefile.am @@ -24,7 +24,7 @@ libhttp_la_SOURCES = curlinterface.c libhttp_la_LDFLAGS = -shared -fPIC -lcurl if IS_LIBRDKCERTSEL_ENABLED libhttp_la_CFLAGS = $(LIBRDKCERTSEL_FLAG) -libhttp_la_LDFLAGS += -lRdkCertSelector +libhttp_la_LDFLAGS += -lRdkCertSelector -lcrypto endif libhttp_la_CPPFLAGS = -fPIC -I${PKG_CONFIG_SYSROOT_DIR}$(includedir)/dbus-1.0 \ -I${PKG_CONFIG_SYSROOT_DIR}$(libdir)/dbus-1.0/include \ diff --git a/source/protocol/http/curlinterface.c b/source/protocol/http/curlinterface.c index 98df178c..a1159596 100644 --- a/source/protocol/http/curlinterface.c +++ b/source/protocol/http/curlinterface.c @@ -31,6 +31,9 @@ #include #include #include +#ifdef LIBRDKCERTSEL_BUILD +#include +#endif #include "curlinterface.h" #include "reportprofiles.h" @@ -319,6 +322,7 @@ T2ERROR sendReportOverHTTP(char *httpUrl, char *payload, pid_t* outForkedPid) rdkcertselectorStatus_t curlGetCertStatus; char *pCertURI = NULL; bool state_red_enable = false; + char *pEngine = NULL; #endif char *pCertFile = NULL; char *pCertPC = NULL; @@ -440,6 +444,9 @@ T2ERROR sendReportOverHTTP(char *httpUrl, char *payload, pid_t* outForkedPid) */ if(childPid == 0) { +#ifdef LIBRDKCERTSEL_BUILD + OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL); +#endif curl = curl_easy_init(); if(curl) { @@ -455,6 +462,23 @@ T2ERROR sendReportOverHTTP(char *httpUrl, char *payload, pid_t* outForkedPid) goto child_cleanReturn; } #ifdef LIBRDKCERTSEL_BUILD + pEngine = rdkcertselector_getEngine(curlCertSelector); + if(pEngine != NULL ) { + code = curl_easy_setopt(curl, CURLOPT_SSLENGINE, pEngine); + if(code != CURLE_OK) { + childCurlResponse.lineNumber = __LINE__; + curl_easy_cleanup(curl); + goto child_cleanReturn; + } + } else { + code = curl_easy_setopt(curl, CURLOPT_SSLENGINE_DEFAULT, 1L); + if(code != CURLE_OK ) { + childCurlResponse.lineNumber = __LINE__; + curl_easy_cleanup(curl); + goto child_cleanReturn; + } + } + do { pCertFile = NULL; From fa28348eedd1ef3a94cf363f385f02411104037b Mon Sep 17 00:00:00 2001 From: adrojaankur Date: Wed, 28 Jan 2026 12:12:49 +0530 Subject: [PATCH 2/7] Update curlinterface.c --- source/protocol/http/curlinterface.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/protocol/http/curlinterface.c b/source/protocol/http/curlinterface.c index 719c5608..76ab90b0 100644 --- a/source/protocol/http/curlinterface.c +++ b/source/protocol/http/curlinterface.c @@ -445,7 +445,9 @@ T2ERROR sendReportOverHTTP(char *httpUrl, char *payload, pid_t* outForkedPid) if(childPid == 0) { #ifdef LIBRDKCERTSEL_BUILD - OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL); + if(OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL) != 1){ + T2Info("%s, T2:OPENSSL_init_crypto failed.\n", __func__); + } #endif curl = curl_easy_init(); if(curl) From a5e420242340a26c535c6fec365732573244577f Mon Sep 17 00:00:00 2001 From: adrojaankur Date: Wed, 28 Jan 2026 12:19:08 +0530 Subject: [PATCH 3/7] Update curlinterface.c --- source/protocol/http/curlinterface.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/protocol/http/curlinterface.c b/source/protocol/http/curlinterface.c index 76ab90b0..6bcf821d 100644 --- a/source/protocol/http/curlinterface.c +++ b/source/protocol/http/curlinterface.c @@ -280,6 +280,10 @@ static void curlCertSelectorInit() #endif if (state_red_enable && curlRcvryCertSelector == NULL ) { + if(curlCertSelector != NULL){ + rdkcertselector_free(&curlCertSelector); + curlCertSelector = NULL; + } curlRcvryCertSelector = rdkcertselector_new( NULL, NULL, "RCVRY" ); if (curlRcvryCertSelector == NULL) { From 6657cfe7e566ec6686d129ef45a0e78d09ea3e1b Mon Sep 17 00:00:00 2001 From: adrojaankur Date: Wed, 28 Jan 2026 12:30:34 +0530 Subject: [PATCH 4/7] Update curlinterface.c --- source/protocol/http/curlinterface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/protocol/http/curlinterface.c b/source/protocol/http/curlinterface.c index 6bcf821d..0110be7e 100644 --- a/source/protocol/http/curlinterface.c +++ b/source/protocol/http/curlinterface.c @@ -468,7 +468,7 @@ T2ERROR sendReportOverHTTP(char *httpUrl, char *payload, pid_t* outForkedPid) goto child_cleanReturn; } #ifdef LIBRDKCERTSEL_BUILD - pEngine = rdkcertselector_getEngine(curlCertSelector); + pEngine = rdkcertselector_getEngine(thisCertSel); if(pEngine != NULL ) { code = curl_easy_setopt(curl, CURLOPT_SSLENGINE, pEngine); if(code != CURLE_OK) { From 9d1e4edf64037dae41e5025d3cc2f760919454c1 Mon Sep 17 00:00:00 2001 From: Yogeswaran K Date: Tue, 3 Feb 2026 06:22:30 +0000 Subject: [PATCH 5/7] RDKB-62352 : Observed telemetry2_0 crash Signed-off-by: Yogeswaran K --- source/protocol/http/curlinterface.c | 55 ++++++++++++++++------------ 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/source/protocol/http/curlinterface.c b/source/protocol/http/curlinterface.c index 0110be7e..ace1b9c6 100644 --- a/source/protocol/http/curlinterface.c +++ b/source/protocol/http/curlinterface.c @@ -280,10 +280,11 @@ static void curlCertSelectorInit() #endif if (state_red_enable && curlRcvryCertSelector == NULL ) { - if(curlCertSelector != NULL){ - rdkcertselector_free(&curlCertSelector); - curlCertSelector = NULL; - } + if(curlCertSelector != NULL) + { + rdkcertselector_free(&curlCertSelector); + curlCertSelector = NULL; + } curlRcvryCertSelector = rdkcertselector_new( NULL, NULL, "RCVRY" ); if (curlRcvryCertSelector == NULL) { @@ -448,10 +449,11 @@ T2ERROR sendReportOverHTTP(char *httpUrl, char *payload, pid_t* outForkedPid) */ if(childPid == 0) { -#ifdef LIBRDKCERTSEL_BUILD - if(OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL) != 1){ - T2Info("%s, T2:OPENSSL_init_crypto failed.\n", __func__); - } +#ifdef LIBRDKCERTSEL_BUILD + if(OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL) != 1) + { + T2Info("%s, T2:OPENSSL_init_crypto failed.\n", __func__); + } #endif curl = curl_easy_init(); if(curl) @@ -468,22 +470,27 @@ T2ERROR sendReportOverHTTP(char *httpUrl, char *payload, pid_t* outForkedPid) goto child_cleanReturn; } #ifdef LIBRDKCERTSEL_BUILD - pEngine = rdkcertselector_getEngine(thisCertSel); - if(pEngine != NULL ) { - code = curl_easy_setopt(curl, CURLOPT_SSLENGINE, pEngine); - if(code != CURLE_OK) { - childCurlResponse.lineNumber = __LINE__; - curl_easy_cleanup(curl); - goto child_cleanReturn; - } - } else { - code = curl_easy_setopt(curl, CURLOPT_SSLENGINE_DEFAULT, 1L); - if(code != CURLE_OK ) { - childCurlResponse.lineNumber = __LINE__; - curl_easy_cleanup(curl); - goto child_cleanReturn; - } - } + pEngine = rdkcertselector_getEngine(thisCertSel); + if(pEngine != NULL ) + { + code = curl_easy_setopt(curl, CURLOPT_SSLENGINE, pEngine); + if(code != CURLE_OK) + { + childCurlResponse.lineNumber = __LINE__; + curl_easy_cleanup(curl); + goto child_cleanReturn; + } + } + else + { + code = curl_easy_setopt(curl, CURLOPT_SSLENGINE_DEFAULT, 1L); + if(code != CURLE_OK ) + { + childCurlResponse.lineNumber = __LINE__; + curl_easy_cleanup(curl); + goto child_cleanReturn; + } + } do { From 6573670a03152b70a2da66fa5ab5f59bf2d6e72d Mon Sep 17 00:00:00 2001 From: adrojaankur Date: Tue, 3 Feb 2026 17:44:24 +0530 Subject: [PATCH 6/7] Update curlinterface.c --- source/protocol/http/curlinterface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/protocol/http/curlinterface.c b/source/protocol/http/curlinterface.c index ace1b9c6..b837de46 100644 --- a/source/protocol/http/curlinterface.c +++ b/source/protocol/http/curlinterface.c @@ -452,7 +452,7 @@ T2ERROR sendReportOverHTTP(char *httpUrl, char *payload, pid_t* outForkedPid) #ifdef LIBRDKCERTSEL_BUILD if(OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL) != 1) { - T2Info("%s, T2:OPENSSL_init_crypto failed.\n", __func__); + fprintf(stderr, "T2:OPENSSL_init_crypto failed\n"); // avoiding T2 logger in the child. } #endif curl = curl_easy_init(); From d9e649e5bc2f75dff781d3562092e2de295a2fcf Mon Sep 17 00:00:00 2001 From: Yogeswaran K Date: Tue, 3 Feb 2026 12:18:59 +0000 Subject: [PATCH 7/7] RDKB-62352 : Observed telemetry2_0 crash Signed-off-by: Yogeswaran K --- source/protocol/http/curlinterface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/protocol/http/curlinterface.c b/source/protocol/http/curlinterface.c index b837de46..dcdf1556 100644 --- a/source/protocol/http/curlinterface.c +++ b/source/protocol/http/curlinterface.c @@ -452,7 +452,7 @@ T2ERROR sendReportOverHTTP(char *httpUrl, char *payload, pid_t* outForkedPid) #ifdef LIBRDKCERTSEL_BUILD if(OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL) != 1) { - fprintf(stderr, "T2:OPENSSL_init_crypto failed\n"); // avoiding T2 logger in the child. + fprintf(stderr, "T2:OPENSSL_init_crypto failed\n"); // avoiding T2 logger in the child. } #endif curl = curl_easy_init();