From adc34642923d8969c3aa6bc73d90e0817ba57a8e Mon Sep 17 00:00:00 2001 From: Simon Wilkinson Date: Tue, 26 Feb 2013 21:28:52 +0000 Subject: [PATCH] volser: Fix bad readlink usage readlink fills the buffer passed to it with a non-terminated string. It can legitimately fill the whole of this buffer. So, if we require a string to be NUL terminated, we must give readlink one less than the string length so that the termination character can be safely appended. Caught by coverity (#985611) Reviewed-on: http://gerrit.openafs.org/9290 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman (cherry picked from commit ddc37043351056c402158610477312f0d7d01c13) Change-Id: Ic3aa9f767b3dce988e32ce670763791f17e72aa2 Reviewed-on: http://gerrit.openafs.org/11017 Reviewed-by: Chas Williams - CONTRACTOR Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand --- src/volser/restorevol.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/volser/restorevol.c b/src/volser/restorevol.c index 86d720edc..003f3196f 100644 --- a/src/volser/restorevol.c +++ b/src/volser/restorevol.c @@ -728,7 +728,7 @@ ReadVNode(afs_int32 count) */ afs_snprintf(linkname, sizeof linkname, "%s" OS_DIRSEP "%s%d", parentdir, AFILE, vn.vnode); - len = readlink(linkname, fname, MAXNAMELEN); + len = readlink(linkname, fname, MAXNAMELEN - 1); if (len < 0) { afs_snprintf(filename, sizeof filename, "%s" OS_DIRSEP "%s%d", rootdir, OFILE, vn.vnode); -- 2.39.5