@@ -1008,7 +1008,8 @@ int ubi_mkvol(libubi_t desc, const char *node, struct ubi_mkvol_request *req)
if (n > UBI_MAX_VOLUME_NAME)
return -1;
- strncpy(r.name, req->name, UBI_MAX_VOLUME_NAME + 1);
+ strncpy(r.name, req->name, UBI_MAX_VOLUME_NAME);
+ r.name[UBI_MAX_VOLUME_NAME] = '\0';
r.name_len = n;
fd = open(node, O_RDONLY);
@@ -174,7 +174,9 @@ int main(int argc, char * const argv[])
case COMMAND_ADD:
part.start = start_addr;
part.length = length;
- strncpy(part.devname, part_name, sizeof(part.devname));
+ strncpy(part.devname, part_name,
+ sizeof(part.devname) - 1);
+ part.devname[sizeof(part.devname) - 1] = '\0';
arg.op = BLKPG_ADD_PARTITION;
break;
case COMMAND_DEL:
@@ -512,7 +512,8 @@ static void processCmdLine(int argc, char **argv)
{
if(strcmp(argv[cnt], CMDLINE_PORT) == 0)
{
- strncpy(SerialDevice, argv[++cnt], sizeof(SerialDevice));
+ strncpy(SerialDevice, argv[++cnt], sizeof(SerialDevice) - 1);
+ SerialDevice[sizeof(SerialDevice) - 1] = '\0';
continue;
}else
if(strcmp(argv[cnt], CMDLINE_MAXFILEBYTES) == 0)
@@ -859,7 +859,8 @@ void HandleCmdLineArgs(
/* Set the file to log console log on. */
++argNum;
- strncpy(LogFile, argv[argNum], sizeof(LogFile));
+ strncpy(LogFile, argv[argNum], sizeof(LogFile) - 1);
+ LogFile[sizeof(LogFile) - 1] = '\0';
}
else if ((strcmp(argv[argNum],"--grab_kprofile") ==
This commit fixes some uses of strncpy that could leave the destination buffer unterminated. Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at> --- lib/libubi.c | 3 ++- misc-utils/mtdpart.c | 4 +++- tests/checkfs/checkfs.c | 3 ++- tests/jittertest/JitterTest.c | 3 ++- 4 files changed, 9 insertions(+), 4 deletions(-)