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
This commit is contained in:
parent
0f9f3dd16b
commit
f7d5a5328f
@ -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:
|
||||
|
@ -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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user