From: Simon Wilkinson Date: Fri, 1 Mar 2013 12:12:07 +0000 (+0000) Subject: up: Fix improper use of readlink X-Git-Tag: upstream/1.6.3^2~122 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=c73b6b61f62e966d8ca962d943b99b26fd441e26;p=packages%2Fo%2Fopenafs.git up: Fix improper use of readlink readlink returns a non-NUL terminated string. If the string must be terminated, we need to have space in the buffer for it. So, the buffer passed to readlink must be 1 less than the real length of the buffer. Caught by coverity (#985597, #985610) Reviewed-on: http://gerrit.openafs.org/9329 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear (cherry picked from commit 80875f8aa1540bf032073a4843566bbe6b1fe301) Change-Id: I1dd039bfceaff7891c9145cf4799469b2de2f23a Reviewed-on: http://gerrit.openafs.org/9371 Reviewed-by: Andrew Deason Tested-by: Andrew Deason Reviewed-by: Paul Smeddle Reviewed-by: Stephan Wiesand --- diff --git a/src/venus/up.c b/src/venus/up.c index e21cfffee..2b79e9ffb 100644 --- a/src/venus/up.c +++ b/src/venus/up.c @@ -440,7 +440,7 @@ Copy(char *file1, char *file2, short recursive, int level) fflush(stdout); } - n = readlink(file1, linkvalue, sizeof(linkvalue)); + n = readlink(file1, linkvalue, sizeof(linkvalue)-1); if (n == -1) { fprintf(stderr, "Could not read symbolic link %s\n", file1); perror("read link ");