From 1656cdc93c1edfc32975e2e8fc021ef275f9f488 Mon Sep 17 00:00:00 2001 From: Kristof Szabados <Kristof.Szabados@ericsson.com> Date: Fri, 11 Dec 2020 21:02:42 +0100 Subject: [PATCH] it looks like passing enums to va_start is unsafe as codechecker reports "passing an object that undergoes default argument promotion to 'va_start' has undefined behavior". Maybe adding a casting to int (forcing the int conversion) will fix it. Signed-off-by: Kristof Szabados <Kristof.Szabados@ericsson.com> --- compiler2/encdec.c | 2 +- core/ASN_Any.cc | 2 +- core/ASN_CharacterString.cc | 2 +- core/ASN_EmbeddedPDV.cc | 2 +- core/ASN_External.cc | 2 +- core/ASN_Null.cc | 2 +- core/Basetype.cc | 2 +- core/Bitstring.cc | 2 +- core/Boolean.cc | 2 +- core/Charstring.cc | 2 +- core/Float.cc | 2 +- core/Hexstring.cc | 2 +- core/Integer.cc | 2 +- core/Objid.cc | 2 +- core/Octetstring.cc | 2 +- core/Universal_charstring.cc | 2 +- core/Verdicttype.cc | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/compiler2/encdec.c b/compiler2/encdec.c index 821163ad0..ee048f56e 100644 --- a/compiler2/encdec.c +++ b/compiler2/encdec.c @@ -176,7 +176,7 @@ void def_encdec(const char *p_classname, " TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)\n" "{\n" " va_list pvar;\n" - " va_start(pvar, p_coding);\n" + " va_start(pvar, (int)p_coding);\n" " switch(p_coding) {\n" " case TTCN_EncDec::CT_BER: {\n" " TTCN_EncDec_ErrorContext ec(\"While BER-decoding type" diff --git a/core/ASN_Any.cc b/core/ASN_Any.cc index d5a7d254f..eb96b2d9f 100644 --- a/core/ASN_Any.cc +++ b/core/ASN_Any.cc @@ -56,7 +56,7 @@ void ASN_ANY::decode(const TTCN_Typedescriptor_t& p_td, TTCN_EncDec::coding_t p_coding, ...) { va_list pvar; - va_start(pvar, p_coding); + va_start(pvar, (int)p_coding); switch(p_coding) { case TTCN_EncDec::CT_BER: { TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name); diff --git a/core/ASN_CharacterString.cc b/core/ASN_CharacterString.cc index 3aa14fa4a..f51a30828 100644 --- a/core/ASN_CharacterString.cc +++ b/core/ASN_CharacterString.cc @@ -3271,7 +3271,7 @@ void CHARACTER_STRING::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_ void CHARACTER_STRING::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) { va_list pvar; - va_start(pvar, p_coding); + va_start(pvar, (int)p_coding); switch(p_coding) { case TTCN_EncDec::CT_BER: { TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name); diff --git a/core/ASN_EmbeddedPDV.cc b/core/ASN_EmbeddedPDV.cc index 69072c6fe..1d2bb8c6f 100644 --- a/core/ASN_EmbeddedPDV.cc +++ b/core/ASN_EmbeddedPDV.cc @@ -3375,7 +3375,7 @@ void EMBEDDED_PDV::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, void EMBEDDED_PDV::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) { va_list pvar; - va_start(pvar, p_coding); + va_start(pvar, (int)p_coding); switch(p_coding) { case TTCN_EncDec::CT_BER: { TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name); diff --git a/core/ASN_External.cc b/core/ASN_External.cc index 467dd678c..e9487c3bc 100644 --- a/core/ASN_External.cc +++ b/core/ASN_External.cc @@ -3590,7 +3590,7 @@ void EXTERNAL::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTC void EXTERNAL::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) { va_list pvar; - va_start(pvar, p_coding); + va_start(pvar, (int)p_coding); switch(p_coding) { case TTCN_EncDec::CT_BER: { TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name); diff --git a/core/ASN_Null.cc b/core/ASN_Null.cc index c83217680..eda76fa7f 100644 --- a/core/ASN_Null.cc +++ b/core/ASN_Null.cc @@ -166,7 +166,7 @@ void ASN_NULL::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) { va_list pvar; - va_start(pvar, p_coding); + va_start(pvar, (int)p_coding); switch(p_coding) { case TTCN_EncDec::CT_BER: { TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name); diff --git a/core/Basetype.cc b/core/Basetype.cc index 189d06ecf..d2884ca26 100644 --- a/core/Basetype.cc +++ b/core/Basetype.cc @@ -120,7 +120,7 @@ void Base_Type::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) { va_list pvar; - va_start(pvar, p_coding); + va_start(pvar, (int)p_coding); switch(p_coding) { case TTCN_EncDec::CT_BER: { TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name); diff --git a/core/Bitstring.cc b/core/Bitstring.cc index bd3659cff..9ec2181e5 100644 --- a/core/Bitstring.cc +++ b/core/Bitstring.cc @@ -700,7 +700,7 @@ void BITSTRING::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) { va_list pvar; - va_start(pvar, p_coding); + va_start(pvar, (int)p_coding); switch(p_coding) { case TTCN_EncDec::CT_BER: { TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name); diff --git a/core/Boolean.cc b/core/Boolean.cc index 119dff27a..be6763a8f 100644 --- a/core/Boolean.cc +++ b/core/Boolean.cc @@ -267,7 +267,7 @@ void BOOLEAN::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) { va_list pvar; - va_start(pvar, p_coding); + va_start(pvar, (int)p_coding); switch(p_coding) { case TTCN_EncDec::CT_BER: { TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name); diff --git a/core/Charstring.cc b/core/Charstring.cc index 5473bc240..d9ffec4ce 100644 --- a/core/Charstring.cc +++ b/core/Charstring.cc @@ -861,7 +861,7 @@ void CHARSTRING::decode(const TTCN_Typedescriptor_t& p_td, TTCN_EncDec::coding_t p_coding, ...) { va_list pvar; - va_start(pvar, p_coding); + va_start(pvar, (int)p_coding); switch(p_coding) { case TTCN_EncDec::CT_BER: { TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name); diff --git a/core/Float.cc b/core/Float.cc index 124035d55..a08cfd443 100644 --- a/core/Float.cc +++ b/core/Float.cc @@ -403,7 +403,7 @@ void FLOAT::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) { va_list pvar; - va_start(pvar, p_coding); + va_start(pvar, (int)p_coding); switch(p_coding) { case TTCN_EncDec::CT_BER: { TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name); diff --git a/core/Hexstring.cc b/core/Hexstring.cc index 30b081539..2455ae0fa 100644 --- a/core/Hexstring.cc +++ b/core/Hexstring.cc @@ -704,7 +704,7 @@ void HEXSTRING::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) { va_list pvar; - va_start(pvar, p_coding); + va_start(pvar, (int)p_coding); switch (p_coding) { case TTCN_EncDec::CT_RAW: { TTCN_EncDec_ErrorContext ec("While RAW-decoding type '%s': ", p_td.name); diff --git a/core/Integer.cc b/core/Integer.cc index ff72dc104..af8d626b5 100644 --- a/core/Integer.cc +++ b/core/Integer.cc @@ -817,7 +817,7 @@ void INTEGER::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) { va_list pvar; - va_start(pvar, p_coding); + va_start(pvar, (int)p_coding); switch(p_coding) { case TTCN_EncDec::CT_BER: { TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name); diff --git a/core/Objid.cc b/core/Objid.cc index 2b9f8ed38..5045b26f5 100644 --- a/core/Objid.cc +++ b/core/Objid.cc @@ -327,7 +327,7 @@ void OBJID::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) { va_list pvar; - va_start(pvar, p_coding); + va_start(pvar, (int)p_coding); switch(p_coding) { case TTCN_EncDec::CT_BER: { TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name); diff --git a/core/Octetstring.cc b/core/Octetstring.cc index 95ffad3ba..2275d3c69 100644 --- a/core/Octetstring.cc +++ b/core/Octetstring.cc @@ -662,7 +662,7 @@ void OCTETSTRING::decode(const TTCN_Typedescriptor_t& p_td, TTCN_EncDec::coding_t p_coding, ...) { va_list pvar; - va_start(pvar, p_coding); + va_start(pvar, (int)p_coding); switch(p_coding) { case TTCN_EncDec::CT_BER: { TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name); diff --git a/core/Universal_charstring.cc b/core/Universal_charstring.cc index 7b94b06ea..a26ced34d 100644 --- a/core/Universal_charstring.cc +++ b/core/Universal_charstring.cc @@ -1168,7 +1168,7 @@ void UNIVERSAL_CHARSTRING::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) { va_list pvar; - va_start(pvar, p_coding); + va_start(pvar, (int)p_coding); switch(p_coding) { case TTCN_EncDec::CT_BER: { TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name); diff --git a/core/Verdicttype.cc b/core/Verdicttype.cc index 07f7496c9..9bc2eba5b 100644 --- a/core/Verdicttype.cc +++ b/core/Verdicttype.cc @@ -208,7 +208,7 @@ void VERDICTTYPE::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) { va_list pvar; - va_start(pvar, p_coding); + va_start(pvar, (int)p_coding); switch(p_coding) { #if 0 case TTCN_EncDec::CT_RAW: { -- GitLab