From 19d2683d711f95165adc16fac765bb4a31c99043 Mon Sep 17 00:00:00 2001 From: Simon Wilkinson Date: Sat, 2 Mar 2013 12:09:42 +0000 Subject: [PATCH] aklog: Avoid overflows in get_afs_mountpoint When working with the fixed length cellname buffer, use strlcat and strlcpy rather than strcat and strcpy. Caught by coverity (#985763) Change-Id: Idfb3a0562d4028f5d1aa134b7ab0b5fa2dd60edb Reviewed-on: http://gerrit.openafs.org/9445 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Jeffrey Altman --- src/aklog/aklog.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/aklog/aklog.c b/src/aklog/aklog.c index 038eece..a77616d 100644 --- a/src/aklog/aklog.c +++ b/src/aklog/aklog.c @@ -1106,8 +1106,7 @@ get_afs_mountpoint(char *file, char *mountpoint, int size) struct ViceIoctl vio; char cellname[BUFSIZ]; - memset(our_file, 0, sizeof(our_file)); - strcpy(our_file, file); + strlcpy(our_file, file, sizeof(our_file)); if ((last_component = strrchr(our_file, DIR))) { *last_component++ = 0; @@ -1133,8 +1132,8 @@ get_afs_mountpoint(char *file, char *mountpoint, int size) vio.out = cellname; if (!pioctl(file, VIOC_FILE_CELL_NAME, &vio, 1)) { - strcat(cellname, VOLMARKERSTRING); - strcat(cellname, mountpoint + 1); + strlcat(cellname, VOLMARKERSTRING, sizeof(cellname)); + strlcat(cellname, mountpoint + 1, sizeof(cellname)); memset(mountpoint + 1, 0, size - 1); strcpy(mountpoint + 1, cellname); } -- 1.9.4