BlockParam: : ensure result of strncpy is null-terminated

This commit is contained in:
Beat Küng
2018-05-09 07:59:46 +02:00
parent 258b1ea473
commit 473fa15026
+5 -2
View File
@@ -51,7 +51,8 @@ BlockParamBase::BlockParamBase(Block *parent, const char *name, bool parent_pref
char fullname[blockNameLengthMax];
if (parent == nullptr) {
strncpy(fullname, name, blockNameLengthMax);
strncpy(fullname, name, blockNameLengthMax - 1);
fullname[sizeof(fullname) - 1] = '\0';
} else {
char parentName[blockNameLengthMax];
@@ -63,7 +64,9 @@ BlockParamBase::BlockParamBase(Block *parent, const char *name, bool parent_pref
fullname[sizeof(fullname) - 1] = '\0';
} else if (parent_prefix) {
snprintf(fullname, blockNameLengthMax, "%s_%s", parentName, name);
if (snprintf(fullname, blockNameLengthMax, "%s_%s", parentName, name) >= blockNameLengthMax) {
PX4_ERR("param too long: %s", name);
}
} else {
strncpy(fullname, name, blockNameLengthMax);