diff options
author | Aleksandar Kanchev <kanchev@itestra.com> | 2013-06-06 10:28:23 +0200 |
---|---|---|
committer | Gerrit Code Review <qqmthk1@lpmodthk02.bmwgroup.net> | 2013-06-07 08:49:44 +0200 |
commit | dc1714bdc385ead53909344069b2d70da8b8608e (patch) | |
tree | d3e46a5ac2006311aedb359b185144f5f1480aac | |
parent | 418e94cc94122509eeb73728a33a100b7698d164 (diff) | |
download | genivi-common-api-dbus-runtime-dc1714bdc385ead53909344069b2d70da8b8608e.tar.gz |
stream: fix assert logic for signature length
signature length is uint8 so checking for length < 256
will always assert true. This also currects logic when
serializing std::string::length() might have different
size than uint8
-rw-r--r-- | src/CommonAPI/DBus/DBusInputStream.h | 1 | ||||
-rw-r--r-- | src/CommonAPI/DBus/DBusOutputStream.cpp | 10 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/CommonAPI/DBus/DBusInputStream.h b/src/CommonAPI/DBus/DBusInputStream.h index f09be98..fb190c9 100644 --- a/src/CommonAPI/DBus/DBusInputStream.h +++ b/src/CommonAPI/DBus/DBusInputStream.h @@ -206,7 +206,6 @@ class DBusInputStream: public InputStream { inline void skipOverSignature() { uint8_t signatureLength; readValue(signatureLength); - assert(signatureLength < 256); readRawData(signatureLength + 1); } diff --git a/src/CommonAPI/DBus/DBusOutputStream.cpp b/src/CommonAPI/DBus/DBusOutputStream.cpp index cf84fe8..701a628 100644 --- a/src/CommonAPI/DBus/DBusOutputStream.cpp +++ b/src/CommonAPI/DBus/DBusOutputStream.cpp @@ -308,10 +308,12 @@ void DBusOutputStream::beginWriteGenericVector() { } void DBusOutputStream::writeSignature(const std::string& signature) { - uint8_t length = (uint8_t) signature.length(); - assert(length < 256); - *this << length; - writeRawData(signature.c_str(), length + 1); + const auto& signatureLength = signature.length(); + assert(signatureLength > 0 && signatureLength < 256); + + const uint8_t wireLength = (uint8_t) signatureLength; + *this << wireLength; + writeRawData(signature.c_str(), wireLength + 1); } void DBusOutputStream::rememberCurrentStreamPosition() { |