Merge branch 'fix-formatted-read-into-char-buf' into 'stable-1.7'

Fix deprecated formatted read into char* from istream

See merge request etherlab.org/ethercat!197
This commit is contained in:
Florian Pose
2026-08-11 15:34:46 +02:00
4 changed files with 13 additions and 13 deletions
+4 -4
View File
@@ -176,8 +176,8 @@ void CommandDownload::execute(const StringVector &args)
data.data = new uint8_t[data.data_size + 1];
try {
data.data_size = interpretAsType(
dataType, contents, data.data, data.data_size);
data.data_size = interpretAsType(dataType, contents, data.data,
data.data_size + 1);
} catch (SizeException &e) {
delete [] data.data;
throwCommandException(e.what());
@@ -197,8 +197,8 @@ void CommandDownload::execute(const StringVector &args)
data.data = new uint8_t[data.data_size + 1];
try {
data.data_size = interpretAsType(
dataType, args[valueIndex], data.data, data.data_size);
data.data_size = interpretAsType(dataType, args[valueIndex],
data.data, data.data_size + 1);
} catch (SizeException &e) {
delete [] data.data;
throwCommandException(e.what());
+2 -2
View File
@@ -131,11 +131,11 @@ void CommandRegWrite::execute(const StringVector &args)
io.size = 1024; // FIXME
}
io.data = new uint8_t[io.size];
io.data = new uint8_t[io.size + 1];
try {
io.size = interpretAsType(
dataType, args[1], io.data, io.size);
dataType, args[1], io.data, io.size + 1);
} catch (SizeException &e) {
delete [] io.data;
throwCommandException(e.what());
+3 -3
View File
@@ -149,18 +149,18 @@ void CommandSoeWrite::execute(const StringVector &args)
memSize = dataType->byteSize;
} else {
// guess string type size
memSize = args[valueArgIndex].size() + 1;
memSize = args[valueArgIndex].size();
if (!memSize) {
err << "Empty argument not allowed.";
throwInvalidUsageException(err);
}
}
ioctl.data = new uint8_t[memSize];
ioctl.data = new uint8_t[memSize + 1];
try {
ioctl.data_size = interpretAsType(
dataType, args[valueArgIndex], ioctl.data, memSize);
dataType, args[valueArgIndex], ioctl.data, memSize + 1);
} catch (SizeException &e) {
delete [] ioctl.data;
throwCommandException(e.what());
+4 -4
View File
@@ -191,14 +191,14 @@ size_t DataTypeHandler::interpretAsType(
case 0x000a: // octet_string
case 0x000b: // unicode_string
dataSize = str.str().size();
if (dataSize > targetSize) {
if (dataSize + 1 > targetSize) { // leave room for terminating \0
stringstream err;
err << "String too large ("
<< dataSize << " > " << targetSize << ")";
<< dataSize << " > " << targetSize - 1 << ")";
throw SizeException(err.str());
}
//str >> (char *) target;
str.read((char *) target, dataSize + 1); // including \0 FIXME
str.read((char *) target, dataSize);
((char *) target)[dataSize] = 0; // terminating \0
break;
case 0x0011: // double
{