aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xlib/fuse.c2
-rw-r--r--lib/fuse_lowlevel.c4
-rw-r--r--test/test_syscalls.c3
3 files changed, 5 insertions, 4 deletions
diff --git a/lib/fuse.c b/lib/fuse.c
index ec6cc59..317abac 100755
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -965,7 +965,7 @@ static char *add_name(char **buf, unsigned *bufsize, char *s, const char *name)
*bufsize = newbufsize;
}
s -= len;
- strncpy(s, name, len);
+ memcpy(s, name, len);
s--;
*s = '/';
diff --git a/lib/fuse_lowlevel.c b/lib/fuse_lowlevel.c
index b9f128f..918893e 100644
--- a/lib/fuse_lowlevel.c
+++ b/lib/fuse_lowlevel.c
@@ -285,7 +285,7 @@ size_t fuse_add_direntry(fuse_req_t req, char *buf, size_t bufsize,
dirent->off = off;
dirent->namelen = namelen;
dirent->type = (stbuf->st_mode & S_IFMT) >> 12;
- strncpy(dirent->name, name, namelen);
+ memcpy(dirent->name, name, namelen);
memset(dirent->name + namelen, 0, entlen_padded - entlen);
return entlen_padded;
@@ -378,7 +378,7 @@ size_t fuse_add_direntry_plus(fuse_req_t req, char *buf, size_t bufsize,
dirent->off = off;
dirent->namelen = namelen;
dirent->type = (e->attr.st_mode & S_IFMT) >> 12;
- strncpy(dirent->name, name, namelen);
+ memcpy(dirent->name, name, namelen);
memset(dirent->name + namelen, 0, entlen_padded - entlen);
return entlen_padded;
diff --git a/test/test_syscalls.c b/test/test_syscalls.c
index 1d776fd..e1dbab3 100644
--- a/test/test_syscalls.c
+++ b/test/test_syscalls.c
@@ -1757,7 +1757,8 @@ static int test_socket(void)
return -1;
}
su.sun_family = AF_UNIX;
- strncpy(su.sun_path, testsock, sizeof(su.sun_path));
+ strncpy(su.sun_path, testsock, sizeof(su.sun_path) - 1);
+ su.sun_path[sizeof(su.sun_path) - 1] = '\0';
res = bind(fd, (struct sockaddr*)&su, sizeof(su));
if (res == -1) {
PERROR("bind");