From c59bad0d80d52c939ec8589cfb889d4cf64ba0db Mon Sep 17 00:00:00 2001 From: Florian Pose Date: Thu, 15 Apr 2010 12:33:48 +0200 Subject: [PATCH] Fixed segfault in reg_read when no datatype is specified. --- tool/DataTypeHandler.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/tool/DataTypeHandler.cpp b/tool/DataTypeHandler.cpp index 2b30f96d..357279f4 100644 --- a/tool/DataTypeHandler.cpp +++ b/tool/DataTypeHandler.cpp @@ -269,12 +269,19 @@ void DataTypeHandler::outputData( size_t dataSize ) { - if (type->byteSize && dataSize != type->byteSize) { - stringstream err; - err << "Data type mismatch. Expected " << type->name - << " with " << type->byteSize << " byte, but got " - << dataSize << " byte."; - throw SizeException(err.str()); + uint16_t typeCode; + + if (type) { + if (type->byteSize && dataSize != type->byteSize) { + stringstream err; + err << "Data type mismatch. Expected " << type->name + << " with " << type->byteSize << " byte, but got " + << dataSize << " byte."; + throw SizeException(err.str()); + } + typeCode = type->code; + } else { + typeCode = 0xffff; // raw data } o << setfill('0');