diff options
author | joerg <joerg@FreeBSD.org> | 2006-03-13 22:32:33 +0000 |
---|---|---|
committer | joerg <joerg@FreeBSD.org> | 2006-03-13 22:32:33 +0000 |
commit | 0ec2804ceedb5182252f4c9d17a687ddbb063744 (patch) | |
tree | 041203eb99055a6b9405defe930f9315b3ed1701 /sys/isofs/cd9660/cd9660_rrip.c | |
parent | 39931688d6c394205476650314f780b07abd3170 (diff) | |
download | FreeBSD-src-0ec2804ceedb5182252f4c9d17a687ddbb063744.zip FreeBSD-src-0ec2804ceedb5182252f4c9d17a687ddbb063744.tar.gz |
When encountering a ISO_SUSP_CFLAG_ROOT element in Rock Ridge
processing, this actually means there's a double slash recorded in the
symbolic link's path name. We used to start over from / then, which
caused link targets like ../../bsdi.1.0/include//pathnames.h to be
interpreted as /pathnahes.h. This is both contradictionary to our
conventional slash interpretation, as well as potentially dangerous.
The right thing to do is (obviously) to just ignore that element.
bde once pointed out that mistake when he noticed it on the
4.4BSD-Lite2 CD-ROM, and asked me for help.
Reviewed by: bde (about half a year ago)
MFC after: 3 days
Diffstat (limited to 'sys/isofs/cd9660/cd9660_rrip.c')
-rw-r--r-- | sys/isofs/cd9660/cd9660_rrip.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/sys/isofs/cd9660/cd9660_rrip.c b/sys/isofs/cd9660/cd9660_rrip.c index aae7394..0b9b1b5 100644 --- a/sys/isofs/cd9660/cd9660_rrip.c +++ b/sys/isofs/cd9660/cd9660_rrip.c @@ -157,9 +157,7 @@ cd9660_rrip_slink(p,ana) case ISO_SUSP_CFLAG_ROOT: /* Inserting slash for ROOT */ - /* start over from beginning(?) */ - outbuf -= len; - len = 0; + /* Double slash, nothing really to do here. */ break; case ISO_SUSP_CFLAG_VOLROOT: |