diff --git a/Loop.cpp b/Loop.cpp index ca26093..1ed5bd0 100644 --- a/Loop.cpp +++ b/Loop.cpp @@ -121,7 +121,7 @@ int Loop::lookupActive(const char *id, char *buffer, size_t len) { errno = ENOENT; return -1; } - strncpy(buffer, filename, len -1); + strlcpy(buffer, filename, len); return 0; } @@ -191,7 +191,7 @@ int Loop::create(const char *id, const char *loopFile, char *loopDeviceBuffer, s return -1; } - strncpy(loopDeviceBuffer, filename, len -1); + strlcpy(loopDeviceBuffer, filename, len); int file_fd; diff --git a/Process.cpp b/Process.cpp index b675436..cc06998 100644 --- a/Process.cpp +++ b/Process.cpp @@ -110,7 +110,7 @@ int Process::checkFileDescriptorSymLinks(int pid, const char *mountPoint, char * if (readSymLink(path, link, sizeof(link)) && pathMatchesMountPoint(link, mountPoint)) { if (openFilename) { memset(openFilename, 0, max); - strncpy(openFilename, link, max-1); + strlcpy(openFilename, link, max); } closedir(dir); return 1; @@ -140,7 +140,7 @@ int Process::checkFileMaps(int pid, const char *mountPoint, char *openFilename, if (path && pathMatchesMountPoint(path, mountPoint)) { if (openFilename) { memset(openFilename, 0, max); - strncpy(openFilename, path, max-1); + strlcpy(openFilename, path, max); } fclose(file); return 1; diff --git a/vdc.c b/vdc.c index dcd2bc3..6927e92 100644 --- a/vdc.c +++ b/vdc.c @@ -145,8 +145,7 @@ static int do_monitor(int sock, int stop_after_cmd) { int code; char tmp[4]; - strncpy(tmp, buffer + offset, 3); - tmp[3] = '\0'; + strlcpy(tmp, buffer + offset, sizeof(tmp)); code = atoi(tmp); printf("%s\n", buffer + offset);