--- smsdaemon/SmsPdu.cpp 2008/12/11 22:32:58 176 +++ smsdaemon/SmsPdu.cpp 2008/12/12 10:58:11 177 @@ -288,15 +288,23 @@ void ParseUdh(vector& udh, SmsPart& part) { - if (udh.size() == 0) { + if (udh.size() == 0) + { Logger::logMessage("ParseUdh(): empty udh"); return; } - if (udh[0] != 0) { + if (udh[0] != 0) + { Logger::logMessage("unknown UDH type"); return; } + + if (udh.size() < 5) + { + Logger::logMessage("UDH to short to be multipart"); + return; + } part.group = udh[2]; part.count = udh[3];