if (item->second != IntegerHandle::INVALID_HANDLE) {
terminal = getTerminal(item->second);
if (terminal != NULL) {
+ if (terminal->getName() == NULL) {
+ _ERR("terminal name is NULL");
+ return -1;
+ }
+
if (terminal->isSecureElementPresence()) {
length += sizeof(nameLen) + strlen(terminal->getName()) + sizeof(unsigned int);
result++;
}
}
- buffer = new unsigned char[length];
+ buffer = new unsigned char[length + 1];
if (buffer != NULL) {
- memset(buffer, 0, length);
+ memset(buffer, 0, length + 1);
for (item = mapReaders.begin(); item != mapReaders.end(); item++) {
if (item->second != IntegerHandle::INVALID_HANDLE) {
memcpy(buffer + offset, &item->first, sizeof(unsigned int));
offset += sizeof(unsigned int);
+
+ buffer[offset] = '\0';
}
}
}