diff --git a/libuavcan/include/uavcan/node/global_data_type_registry.hpp b/libuavcan/include/uavcan/node/global_data_type_registry.hpp index 56498092bc..8ee4638371 100644 --- a/libuavcan/include/uavcan/node/global_data_type_registry.hpp +++ b/libuavcan/include/uavcan/node/global_data_type_registry.hpp @@ -37,10 +37,14 @@ class UAVCAN_EXPORT GlobalDataTypeRegistry : Noncopyable struct EntryInsertionComparator { const DataTypeID id; - explicit EntryInsertionComparator(Entry* dtd) : id(dtd->descriptor.getID()) { } + explicit EntryInsertionComparator(const Entry* dtd) + : id((dtd == NULL) ? DataTypeID() : dtd->descriptor.getID()) + { + assert(dtd != NULL); + } bool operator()(const Entry* entry) const { - assert(entry); + assert(entry != NULL); return entry->descriptor.getID() > id; } }; diff --git a/libuavcan/src/marshal/uc_scalar_codec.cpp b/libuavcan/src/marshal/uc_scalar_codec.cpp index 5771afbd85..7f523d8c97 100644 --- a/libuavcan/src/marshal/uc_scalar_codec.cpp +++ b/libuavcan/src/marshal/uc_scalar_codec.cpp @@ -9,6 +9,7 @@ namespace uavcan void ScalarCodec::swapByteOrder(uint8_t* const bytes, const unsigned len) { + assert(bytes); for (int i = 0, j = len - 1; i < j; i++, j--) { const uint8_t c = bytes[i]; @@ -19,6 +20,7 @@ void ScalarCodec::swapByteOrder(uint8_t* const bytes, const unsigned len) int ScalarCodec::encodeBytesImpl(uint8_t* const bytes, const unsigned bitlen) { + assert(bytes); // Underlying stream class assumes that more significant bits have lower index, so we need to shift some. if (bitlen % 8) { @@ -29,6 +31,7 @@ int ScalarCodec::encodeBytesImpl(uint8_t* const bytes, const unsigned bitlen) int ScalarCodec::decodeBytesImpl(uint8_t* const bytes, const unsigned bitlen) { + assert(bytes); const int read_res = stream_.read(bytes, bitlen); if (read_res > 0) {