Skip to content

Commit f029d63

Browse files
authored
Fix coverity warnings (#526)
IB-7550 Signed-off-by: Raul Metsma <[email protected]>
1 parent 485e884 commit f029d63

File tree

1 file changed

+38
-47
lines changed

1 file changed

+38
-47
lines changed

src/SignatureXAdES_B.cpp

Lines changed: 38 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1064,83 +1064,72 @@ void SignatureXAdES_B::saveToXml(ostream &os) const
10641064
string SignatureXAdES_B::city() const
10651065
{
10661066
// return elements from SignatureProductionPlace element or SignatureProductionPlaceV2 when available
1067-
const SignedSignaturePropertiesType::SignatureProductionPlaceOptional& sigProdPlaceOptional =
1068-
getSignedSignatureProperties().signatureProductionPlace();
1069-
if(sigProdPlaceOptional && sigProdPlaceOptional->city())
1070-
return sigProdPlaceOptional->city().get();
1071-
const SignedSignaturePropertiesType::SignatureProductionPlaceV2Optional &sigProdPlaceV2Optional =
1072-
getSignedSignatureProperties().signatureProductionPlaceV2();
1073-
if(sigProdPlaceV2Optional && sigProdPlaceV2Optional->city())
1074-
return sigProdPlaceV2Optional->city().get();
1067+
if(const auto &sigProdPlace = getSignedSignatureProperties().signatureProductionPlace();
1068+
sigProdPlace && sigProdPlace->city())
1069+
return sigProdPlace->city().get();
1070+
if(const auto &sigProdPlaceV2 = getSignedSignatureProperties().signatureProductionPlaceV2();
1071+
sigProdPlaceV2 && sigProdPlaceV2->city())
1072+
return sigProdPlaceV2->city().get();
10751073
return {};
10761074
}
10771075

10781076
string SignatureXAdES_B::stateOrProvince() const
10791077
{
10801078
// return elements from SignatureProductionPlace element or SignatureProductionPlaceV2 when available
1081-
const SignedSignaturePropertiesType::SignatureProductionPlaceOptional& sigProdPlaceOptional =
1082-
getSignedSignatureProperties().signatureProductionPlace();
1083-
if(sigProdPlaceOptional && sigProdPlaceOptional->stateOrProvince())
1084-
return sigProdPlaceOptional->stateOrProvince().get();
1085-
const SignedSignaturePropertiesType::SignatureProductionPlaceV2Optional &sigProdPlaceV2Optional =
1086-
getSignedSignatureProperties().signatureProductionPlaceV2();
1087-
if(sigProdPlaceV2Optional && sigProdPlaceV2Optional->stateOrProvince())
1088-
return sigProdPlaceV2Optional->stateOrProvince().get();
1079+
if(const auto &sigProdPlace = getSignedSignatureProperties().signatureProductionPlace();
1080+
sigProdPlace && sigProdPlace->stateOrProvince())
1081+
return sigProdPlace->stateOrProvince().get();
1082+
if(const auto &sigProdPlaceV2 = getSignedSignatureProperties().signatureProductionPlaceV2();
1083+
sigProdPlaceV2 && sigProdPlaceV2->stateOrProvince())
1084+
return sigProdPlaceV2->stateOrProvince().get();
10891085
return {};
10901086
}
10911087

10921088
string SignatureXAdES_B::streetAddress() const
10931089
{
1094-
const SignedSignaturePropertiesType::SignatureProductionPlaceV2Optional &sigProdPlaceV2Optional =
1095-
getSignedSignatureProperties().signatureProductionPlaceV2();
1096-
if(sigProdPlaceV2Optional && sigProdPlaceV2Optional->streetAddress())
1097-
return sigProdPlaceV2Optional->streetAddress().get();
1090+
if(const auto &sigProdPlaceV2 = getSignedSignatureProperties().signatureProductionPlaceV2();
1091+
sigProdPlaceV2 && sigProdPlaceV2->streetAddress())
1092+
return sigProdPlaceV2->streetAddress().get();
10981093
return {};
10991094
}
11001095

11011096
string SignatureXAdES_B::postalCode() const
11021097
{
11031098
// return elements from SignatureProductionPlace element or SignatureProductionPlaceV2 when available
1104-
const SignedSignaturePropertiesType::SignatureProductionPlaceOptional& sigProdPlaceOptional =
1105-
getSignedSignatureProperties().signatureProductionPlace();
1106-
if(sigProdPlaceOptional && sigProdPlaceOptional->postalCode())
1107-
return sigProdPlaceOptional->postalCode().get();
1108-
const SignedSignaturePropertiesType::SignatureProductionPlaceV2Optional &sigProdPlaceV2Optional =
1109-
getSignedSignatureProperties().signatureProductionPlaceV2();
1110-
if(sigProdPlaceV2Optional && sigProdPlaceV2Optional->postalCode())
1111-
return sigProdPlaceV2Optional->postalCode().get();
1099+
if(const auto &sigProdPlace = getSignedSignatureProperties().signatureProductionPlace();
1100+
sigProdPlace && sigProdPlace->postalCode())
1101+
return sigProdPlace->postalCode().get();
1102+
if(const auto &sigProdPlaceV2 = getSignedSignatureProperties().signatureProductionPlaceV2();
1103+
sigProdPlaceV2 && sigProdPlaceV2->postalCode())
1104+
return sigProdPlaceV2->postalCode().get();
11121105
return {};
11131106
}
11141107

11151108
string SignatureXAdES_B::countryName() const
11161109
{
11171110
// return elements from SignatureProductionPlace element or SignatureProductionPlaceV2 when available
1118-
const SignedSignaturePropertiesType::SignatureProductionPlaceOptional &sigProdPlaceOptional =
1119-
getSignedSignatureProperties().signatureProductionPlace();
1120-
if(sigProdPlaceOptional && sigProdPlaceOptional->countryName())
1121-
return sigProdPlaceOptional->countryName().get();
1122-
const SignedSignaturePropertiesType::SignatureProductionPlaceV2Optional &sigProdPlaceV2Optional =
1123-
getSignedSignatureProperties().signatureProductionPlaceV2();
1124-
if(sigProdPlaceV2Optional && sigProdPlaceV2Optional->countryName())
1125-
return sigProdPlaceV2Optional->countryName().get();
1111+
if(const auto &sigProdPlace = getSignedSignatureProperties().signatureProductionPlace();
1112+
sigProdPlace && sigProdPlace->countryName())
1113+
return sigProdPlace->countryName().get();
1114+
if(const auto &sigProdPlaceV2 = getSignedSignatureProperties().signatureProductionPlaceV2();
1115+
sigProdPlaceV2 && sigProdPlaceV2->countryName())
1116+
return sigProdPlaceV2->countryName().get();
11261117
return {};
11271118
}
11281119

11291120
vector<string> SignatureXAdES_B::signerRoles() const
11301121
{
1131-
vector<string> roles;
1132-
const SignedSignaturePropertiesType::SignerRoleOptional &roleOpt =
1133-
getSignedSignatureProperties().signerRole();
1134-
const SignedSignaturePropertiesType::SignerRoleV2Optional &roleV2Opt =
1135-
getSignedSignatureProperties().signerRoleV2();
11361122
const ClaimedRolesListType::ClaimedRoleSequence &claimedRoleSequence = [&] {
11371123
// return elements from SignerRole element or SignerRoleV2 when available
1138-
if(roleOpt && roleOpt->claimedRoles())
1139-
return roleOpt->claimedRoles()->claimedRole();
1140-
if(roleV2Opt && roleV2Opt->claimedRoles())
1141-
return roleV2Opt->claimedRoles()->claimedRole();
1124+
if(const auto &role = getSignedSignatureProperties().signerRole();
1125+
role && role->claimedRoles())
1126+
return role->claimedRoles()->claimedRole();
1127+
if(const auto &roleV2 = getSignedSignatureProperties().signerRoleV2();
1128+
roleV2 && roleV2->claimedRoles())
1129+
return roleV2->claimedRoles()->claimedRole();
11421130
return ClaimedRolesListType::ClaimedRoleSequence{};
11431131
}();
1132+
vector<string> roles;
11441133
roles.reserve(claimedRoleSequence.size());
11451134
for(const ClaimedRolesListType::ClaimedRoleType &type: claimedRoleSequence)
11461135
roles.emplace_back(type.text());
@@ -1164,8 +1153,10 @@ X509Cert SignatureXAdES_B::signingCertificate() const
11641153
{
11651154
for(const KeyInfoType::X509DataType &x509Data: keyInfoOptional->x509Data())
11661155
{
1167-
for(const X509DataType::X509CertificateType &data: x509Data.x509Certificate())
1168-
return X509Cert((const unsigned char*)data.data(), data.size());
1156+
if(x509Data.x509Certificate().empty())
1157+
continue;
1158+
const X509DataType::X509CertificateType &data = x509Data.x509Certificate().front();
1159+
return X509Cert((const unsigned char*)data.data(), data.size());
11691160
}
11701161
}
11711162
catch(const Exception &e)

0 commit comments

Comments
 (0)