aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacques Vidrine <nectar@FreeBSD.org>2003-08-03 23:47:39 +0000
committerJacques Vidrine <nectar@FreeBSD.org>2003-08-03 23:47:39 +0000
commit2c7d2369859c52f08fb171e1e68b4499ed5a5dca (patch)
tree2cd65f132e3d9d8f289f28a70947062180e16d14
parent07293bd225fc82f90ac00483aa4c9f7458e40906 (diff)
downloadsrc-2c7d2369859c52f08fb171e1e68b4499ed5a5dca.tar.gz
src-2c7d2369859c52f08fb171e1e68b4499ed5a5dca.zip
realpath(3) bug fix: There was an off-by-one error in computing the
size of the resulting canonical path.
Notes
Notes: svn path=/releng/4.6/; revision=118401
-rw-r--r--UPDATING3
-rw-r--r--lib/libc/stdlib/realpath.c3
-rw-r--r--sys/conf/newvers.sh2
3 files changed, 6 insertions, 2 deletions
diff --git a/UPDATING b/UPDATING
index 2e322cf9acfb..7dfdac1fa3e8 100644
--- a/UPDATING
+++ b/UPDATING
@@ -17,6 +17,9 @@ minimal number of processes, if possible, for that patch. For those
updates that don't have an advisory, or to be safe, you can do a full
build and install as described in the COMMON ITEMS section.
+20030804: p14 FreeBSD-SA-03:08.realpath
+ Correct a single byte buffer overflow in realpath(3).
+
20030329: p13 FreeBSD-SA-03:07.sendmail
sendmail address parsing buffer overflow.
diff --git a/lib/libc/stdlib/realpath.c b/lib/libc/stdlib/realpath.c
index 0217dde5f6a6..520624a9fef2 100644
--- a/lib/libc/stdlib/realpath.c
+++ b/lib/libc/stdlib/realpath.c
@@ -138,7 +138,8 @@ loop:
rootd = 0;
if (*wbuf) {
- if (strlen(resolved) + strlen(wbuf) + rootd + 1 > MAXPATHLEN) {
+ if (strlen(resolved) + strlen(wbuf) + (1-rootd) + 1 >
+ MAXPATHLEN) {
errno = ENAMETOOLONG;
goto err1;
}
diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh
index d8ccd1d772bf..f01e1380e19d 100644
--- a/sys/conf/newvers.sh
+++ b/sys/conf/newvers.sh
@@ -36,7 +36,7 @@
TYPE="FreeBSD"
REVISION="4.6.2"
-BRANCH="RELEASE-p13"
+BRANCH="RELEASE-p14"
RELEASE="${REVISION}-${BRANCH}"
VERSION="${TYPE} ${RELEASE}"