From 6a30c10ceaa7a38419d7eef9d52bd361f2c881f0 Mon Sep 17 00:00:00 2001 From: Thorsten Date: Mon, 7 Mar 2022 12:15:25 +0100 Subject: [PATCH] Getting things to compile warning free in Linux: To the usual the wrong type of thread functions, potential buffer overruns, the lost(?) cstinfo unit ... --- trdp/Makefile | 5 +++-- trdp/debian/libtrdp2.symbols | 4 ++++ trdp/src/common/tau_cstinfo.c | 14 +++++++------- trdp/src/common/tau_ctrl.c | 2 +- trdp/src/vos/posix/vos_sock.c | 2 +- trdp/test/diverse/mdDataLengthTest.c | 5 +++-- trdp/test/diverse/pdMcRoutingTest.c | 5 +++-- trdp/test/localtest/api_test_3.c | 8 +++++--- trdp/test/localtest/api_test_4.c | 8 +++++--- 9 files changed, 32 insertions(+), 21 deletions(-) diff --git a/trdp/Makefile b/trdp/Makefile index ca2543d..323a855 100644 --- a/trdp/Makefile +++ b/trdp/Makefile @@ -79,6 +79,7 @@ TRDP_OPT_OBJS += trdp_xml.o \ tau_marshall.o \ tau_dnr.o \ tau_tti.o \ + tau_cstinfo.o \ tau_ctrl.o \ tau_xsession.o \ tau_xmarshall.o @@ -585,7 +586,7 @@ $(OUTDIR)/pdMcRouting: $(OUTDIR)/libtrdp.a pdMcRoutingTest.c @$(ECHO) ' ### Building PD MC routing test receiver application $(@F)' $(CC) test/diverse/pdMcRoutingTest.c \ -ltrdp \ - $(LDFLAGS) $(CFLAGS) $(INCLUDES) \ + $(LDFLAGS) $(CFLAGS) $(INCLUDES) $(LDLIBS) \ -o $@ @$(STRIP) $@ @@ -593,7 +594,7 @@ $(OUTDIR)/mdDataLength: $(OUTDIR)/libtrdp.a mdDataLengthTest.c @$(ECHO) ' ### Building PD MC routing test receiver application $(@F)' $(CC) test/diverse/mdDataLengthTest.c \ -ltrdp \ - $(LDFLAGS) $(CFLAGS) $(INCLUDES) \ + $(LDFLAGS) $(CFLAGS) $(INCLUDES) $(LDLIBS) \ -o $@ @$(STRIP) $@ diff --git a/trdp/debian/libtrdp2.symbols b/trdp/debian/libtrdp2.symbols index 8d2a386..fe22d0f 100644 --- a/trdp/debian/libtrdp2.symbols +++ b/trdp/debian/libtrdp2.symbols @@ -52,6 +52,7 @@ libtau-hp.so.2 libtrdp2 #MINVER# tau_readXmlMappedInterfaceConfig@Base 2.0 tau_readXmlServiceConfig@Base 2.0 tau_requestEcspConfirm@Base 2.0 + tau_requestEcspConfirmReply@Base 2.0-111 tau_setEcspCtrl@Base 2.0 tau_terminateEcspCtrl@Base 2.0 tau_unmarshall@Base 2.0 @@ -143,6 +144,7 @@ libtau.so.2 libtrdp2 #MINVER# tau_readXmlMappedInterfaceConfig@Base 2.0 tau_readXmlServiceConfig@Base 2.0 tau_requestEcspConfirm@Base 2.0 + tau_requestEcspConfirmReply@Base 2.0-111 tau_setEcspCtrl@Base 2.0 tau_terminateEcspCtrl@Base 2.0 tau_unmarshall@Base 2.0 @@ -328,6 +330,7 @@ libtrdp-hp.so.2 libtrdp2 #MINVER# vos_divTime@Base 2.0 vos_dottedIP@Base 2.0 vos_getErrorString@Base 2.0 + vos_getInterfaceIP@Base 2.0-111 vos_getInterfaces@Base 2.0 vos_getMacAddress@Base 2.0 vos_getNanoTime@Base 2.0 @@ -542,6 +545,7 @@ libtrdp.so.2 libtrdp2 #MINVER# vos_divTime@Base 2.0 vos_dottedIP@Base 2.0 vos_getErrorString@Base 2.0 + vos_getInterfaceIP@Base 2.0-111 vos_getInterfaces@Base 2.0 vos_getMacAddress@Base 2.0 vos_getNanoTime@Base 2.0 diff --git a/trdp/src/common/tau_cstinfo.c b/trdp/src/common/tau_cstinfo.c index ed35dae..64b6248 100644 --- a/trdp/src/common/tau_cstinfo.c +++ b/trdp/src/common/tau_cstinfo.c @@ -58,20 +58,20 @@ */ UINT16 cstInfoGetPropSize (TRDP_CONSIST_INFO_T *pCstInfo) { - return vos_ntohs(pCstInfo->cstProp.len); + return vos_ntohs(pCstInfo->pCstProp->len); } void cstInfoGetProperty (TRDP_CONSIST_INFO_T *pCstInfo, UINT8 *pValue) { - memcpy(pValue, pCstInfo->cstProp.prop, vos_ntohs(pCstInfo->cstProp.len)); + memcpy(pValue, pCstInfo->pCstProp->prop, vos_ntohs(pCstInfo->pCstProp->len)); } void cstInfoGetETBInfo (TRDP_CONSIST_INFO_T *pCstInfo, UINT32 l_index, TRDP_ETB_INFO_T *pValue) { - UINT8 *pSrc = (UINT8 *)&pCstInfo->cstProp + vos_ntohs(pCstInfo->cstProp.len) + 4 + 2; /* pCstInfo->etbCnt */ + UINT8 *pSrc = (UINT8 *)&pCstInfo->pCstProp + vos_ntohs(pCstInfo->pCstProp->len) + 4 + 2; /* pCstInfo->etbCnt */ UINT16 etbCnt = vos_ntohs(*pSrc); TRDP_ETB_INFO_T *pCurInfo; if (l_index> etbCnt) @@ -89,7 +89,7 @@ UINT32 cstInfoGetVehInfoSize (UINT8 *pVehList) plus size of properties minus 4 bytes of static array element [0] */ return sizeof(TRDP_VEHICLE_INFO_T) + - (vos_ntohs(((TRDP_VEHICLE_INFO_T *)pVehList)->vehProp.len) * sizeof(TRDP_PROP_T) - 4); + (vos_ntohs(((TRDP_VEHICLE_INFO_T *)pVehList)->pVehProp->len) * sizeof(TRDP_PROP_T) - 4); } void cstInfoGetVehInfo (TRDP_CONSIST_INFO_T *pCstInfo, @@ -97,7 +97,7 @@ void cstInfoGetVehInfo (TRDP_CONSIST_INFO_T *pCstInfo, TRDP_VEHICLE_INFO_T *pValue, UINT32 *pSize) { - UINT8 *pSrc = (UINT8 *)&pCstInfo->cstProp + vos_ntohs(pCstInfo->cstProp.len) + 4 + 2; /* pCstInfo->etbCnt */ + UINT8 *pSrc = (UINT8 *)&pCstInfo->pCstProp + vos_ntohs(pCstInfo->pCstProp->len) + 4 + 2; /* pCstInfo->etbCnt */ UINT16 etbCnt = vos_ntohs(*pSrc); UINT16 vehCnt; UINT32 i; @@ -125,7 +125,7 @@ void cstInfoGetFctInfo (TRDP_CONSIST_INFO_T *pCstInfo, TRDP_FUNCTION_INFO_T *pValue, UINT32 *pSize) { - UINT8 *pSrc = (UINT8 *)&pCstInfo->cstProp + vos_ntohs(pCstInfo->cstProp.len) + 4 + 2; /* pCstInfo->etbCnt */ + UINT8 *pSrc = (UINT8 *)&pCstInfo->pCstProp + vos_ntohs(pCstInfo->pCstProp->len) + 4 + 2; /* pCstInfo->etbCnt */ UINT16 etbCnt = vos_ntohs(*pSrc); UINT16 vehCnt; UINT16 fctCnt; @@ -170,7 +170,7 @@ void cstInfoGetCltrCstInfo ( TRDP_FUNCTION_INFO_T *pValue, UINT32 *pSize) { - UINT8 *pSrc = (UINT8 *)&pCstInfo->cstProp + vos_ntohs(pCstInfo->cstProp.len) + 4 + 2; /* pCstInfo->etbCnt */ + UINT8 *pSrc = (UINT8 *)&pCstInfo->pCstProp + vos_ntohs(pCstInfo->pCstProp->len) + 4 + 2; /* pCstInfo->etbCnt */ UINT16 etbCnt = vos_ntohs(*pSrc); UINT16 vehCnt; UINT16 fctCnt; diff --git a/trdp/src/common/tau_ctrl.c b/trdp/src/common/tau_ctrl.c index 0a80a4d..a2a6f42 100644 --- a/trdp/src/common/tau_ctrl.c +++ b/trdp/src/common/tau_ctrl.c @@ -383,7 +383,7 @@ EXT_DECL TRDP_ERR_T tau_getEcspStat ( TRDP_APP_SESSION_T appHandle, * */ EXT_DECL TRDP_ERR_T tau_requestEcspConfirm ( TRDP_APP_SESSION_T appHandle, - const void *pUserRef, + void *pUserRef, TRDP_MD_CALLBACK_T pfCbFunction, TRDP_ECSP_CONF_REQUEST_T *pEcspConfRequest) { diff --git a/trdp/src/vos/posix/vos_sock.c b/trdp/src/vos/posix/vos_sock.c index d3b4ab1..614edca 100644 --- a/trdp/src/vos/posix/vos_sock.c +++ b/trdp/src/vos/posix/vos_sock.c @@ -65,7 +65,7 @@ #endif #ifdef __linux -# include +# include # include # include # include diff --git a/trdp/test/diverse/mdDataLengthTest.c b/trdp/test/diverse/mdDataLengthTest.c index 744cb7c..850043e 100644 --- a/trdp/test/diverse/mdDataLengthTest.c +++ b/trdp/test/diverse/mdDataLengthTest.c @@ -75,7 +75,7 @@ static TRDP_APP_SESSION_T test_init( TRDP_TEST_SESSION_T *pSession, const char * name, TRDP_MEM_CONFIG_T *pMemConfig); -static void trdp_loop(void *pArg); +static void *trdp_loop(void *pArg); static void test_deinit( TRDP_TEST_SESSION_T *pSession1, TRDP_TEST_SESSION_T *pSession2); @@ -93,7 +93,7 @@ void mdTestCallback( * * @retval none */ -static void trdp_loop(void *pArg) +static void *trdp_loop(void *pArg) { TRDP_TEST_SESSION_T *pSession = (TRDP_TEST_SESSION_T *)pArg; /* @@ -160,6 +160,7 @@ static void trdp_loop(void *pArg) (void)tlc_closeSession(pSession->appHandle); pSession->appHandle = NULL; + return NULL; } /**********************************************************************************************************************/ diff --git a/trdp/test/diverse/pdMcRoutingTest.c b/trdp/test/diverse/pdMcRoutingTest.c index 1b87563..31c3978 100644 --- a/trdp/test/diverse/pdMcRoutingTest.c +++ b/trdp/test/diverse/pdMcRoutingTest.c @@ -86,7 +86,7 @@ static TRDP_APP_SESSION_T test_init( TRDP_PRINT_DBG_T dbgout, TRDP_TEST_SESSION_T *pSession, const char * name); -static void trdp_loop(void *pArg); +static void *trdp_loop(void *pArg); static void test_deinit( TRDP_TEST_SESSION_T *pSession1, TRDP_TEST_SESSION_T *pSession2); @@ -99,7 +99,7 @@ static int receiveAndCheckData(TRDP_TEST_SESSION_T *pSession, UINT32 id); * * @retval none */ -static void trdp_loop(void *pArg) +static void *trdp_loop(void *pArg) { TRDP_TEST_SESSION_T *pSession = (TRDP_TEST_SESSION_T *)pArg; /* @@ -166,6 +166,7 @@ static void trdp_loop(void *pArg) (void)tlc_closeSession(pSession->appHandle); pSession->appHandle = NULL; + return NULL; } /**********************************************************************************************************************/ diff --git a/trdp/test/localtest/api_test_3.c b/trdp/test/localtest/api_test_3.c index d0fa269..72db06f 100644 --- a/trdp/test/localtest/api_test_3.c +++ b/trdp/test/localtest/api_test_3.c @@ -491,7 +491,7 @@ static void test_deinit ( */ -static int test1 () +static __unused int test1 () { PREPARE1("SRM offer ### obsolete! ###"); /* allocates appHandle1, failed = 0, err */ @@ -880,7 +880,9 @@ static int test3 () pdInfo.seqCount, pdInfo.msgType >> 8, pdInfo.msgType & 0xFF); - vos_printLog(VOS_LOG_USR, "Data: %*s\n", dataSize, buffer); + UINT8 logbuffer[248]; /* GCC is a bit bitchy about buffer checks and vos_printLog is limited. Be nice */ + memcpy(logbuffer, buffer, dataSize>sizeof(logbuffer) ? sizeof(logbuffer) : dataSize); + vos_printLog(VOS_LOG_USR, "Data: %*s\n", dataSize>sizeof(logbuffer) ? (UINT32)sizeof(logbuffer) : dataSize, logbuffer); //break; } else @@ -968,7 +970,7 @@ static void test5CBFunction ( fprintf(gFp, "->> Unsolicited Message received (type = %c%c)\n", pMsg->msgType >> 8, pMsg->msgType & 0xFF); gFailed = 1; } -end: + return; } diff --git a/trdp/test/localtest/api_test_4.c b/trdp/test/localtest/api_test_4.c index 9668b4f..11f9075 100644 --- a/trdp/test/localtest/api_test_4.c +++ b/trdp/test/localtest/api_test_4.c @@ -127,7 +127,8 @@ TRDP_THREAD_SESSION_T gSession2 = {NULL, 0x0A000365u, 0, 0}; { \ 0x00, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF, 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF \ } -#define CST_1_ID "SBahn 150" +/* this is used as TRDP_LABEL_T, so it must be filled up to the full expected length */ +#define CST_1_ID "SBahn 150\0\0\0\0\0\0\0" #define CST_2_UUID \ { \ @@ -641,7 +642,7 @@ static void dbgOut( * * @retval none */ -static void trdp_loop(void *pArg) +static void *trdp_loop(void *pArg) { TRDP_THREAD_SESSION_T *pSession = (TRDP_THREAD_SESSION_T *)pArg; /* @@ -708,6 +709,7 @@ static void trdp_loop(void *pArg) (void)tlc_closeSession(pSession->appHandle); pSession->appHandle = NULL; + return NULL; } /**********************************************************************************************************************/ @@ -1442,7 +1444,7 @@ static int test3() memset(&expectedVehInfo, 0, sizeof(expectedVehInfo)); memcpy(&expectedVehInfo, &gCstInfo.test_ar_VehInfoList[counter], sizeof(gCstInfo.test_ar_VehInfoList[counter])); - expectedVehInfo.vehProp.len = SWAP_16(expectedVehInfo.vehProp.len); + expectedVehInfo.pVehProp->len = SWAP_16(expectedVehInfo.pVehProp->len); /** @TODO: check, if Padding needs to be considered */ if (memcmp(&expectedVehInfo, &consistInfo.pVehInfoList[counter], sizeof(TRDP_VEHICLE_INFO_T)) != 0)