(cd /tmp/iso; ln -s /tmp/ symlink2)
(cd /tmp/iso; ln -s /tmp/../ symlink3)
(cd /tmp/iso; ln -s .././../tmp/ symlink4)
+(cd /tmp/iso; ln -s .///file symlink5)
+(cd /tmp/iso; ln -s /tmp//../ symlink6)
TZ=utc touch -afhm -t 197001020000.01 /tmp/iso /tmp/iso/file /tmp/iso/dir
TZ=utc touch -afhm -t 197001030000.02 /tmp/iso/symlink
mkhybrid -R -uid 1 -gid 2 /tmp/iso | bzip2 > test_read_format_isorr_bz2.iso.bz2
/* Retrieve each of the 8 files on the ISO image and
* verify that each one is what we expect. */
- for (i = 0; i < 8; ++i) {
+ for (i = 0; i < 10; ++i) {
assertEqualInt(0, archive_read_next_header(a, &ae));
if (strcmp(".", archive_entry_pathname(ae)) == 0) {
assertEqualInt(1, archive_entry_stat(ae)->st_nlink);
assertEqualInt(1, archive_entry_uid(ae));
assertEqualInt(2, archive_entry_gid(ae));
+ } else if (strcmp("symlink5", archive_entry_pathname(ae)) == 0) {
+ /* A symlink to the regular file with "/" components. */
+ assertEqualInt(AE_IFLNK, archive_entry_filetype(ae));
+ assertEqualString(".///file", archive_entry_symlink(ae));
+ assertEqualInt(0, archive_entry_size(ae));
+ assertEqualInt(172802, archive_entry_mtime(ae));
+ assertEqualInt(172802, archive_entry_atime(ae));
+ assertEqualInt(1, archive_entry_stat(ae)->st_nlink);
+ assertEqualInt(1, archive_entry_uid(ae));
+ assertEqualInt(2, archive_entry_gid(ae));
+ } else if (strcmp("symlink6", archive_entry_pathname(ae)) == 0) {
+ /* A symlink to /tmp//..
+ * (with "/" and ".." components) */
+ assertEqualInt(AE_IFLNK, archive_entry_filetype(ae));
+ assertEqualString("/tmp//..", archive_entry_symlink(ae));
+ assertEqualInt(0, archive_entry_size(ae));
+ assertEqualInt(1, archive_entry_stat(ae)->st_nlink);
+ assertEqualInt(1, archive_entry_uid(ae));
+ assertEqualInt(2, archive_entry_gid(ae));
} else {
failure("Saw a file that shouldn't have been there");
assertEqualString(archive_entry_pathname(ae), "");
begin 644 test_read_format_isorr_bz2.iso.bz2
-M0EIH.3%!629364.3#=@``-+_W?__2_358_WZ/__?8*?OWB8A_B2```4@`,0"
-M@0C0`YX`)E`6H-")J&IDV2,C)H&F330``-`:&@:8@#(PAD``--1HF1HF0T3$
-MTAIH#U-'J``T``````>H#(!P``#0-#0T-,@`T``&@&AH``&0``<```T#0T-#
-M3(`-``!H!H:``!D``")1$R0GJ>ILI/1D!,)D&&)J8:`(&$&:F(9&F3TC#"EX
-MTR!;ER<Y/W/8%RN8K<Z&$,)P."?&SVA9I8QW(NI*1)"$"`'&@&U$'F4IYH@'
-MV$`!?C$%$0`>)EHN+:;W/S@4P0$!1`'?C!I(C`4DT=*4*P$/@01$1`'#%;N4
-MH7542A!ONH!@P1E2HR^G,V=@ML2GHX=3^O73`3FP:9@S)-O6IGS+"0)<AL_]
-MC]]BJ@B`.YR0O#0<^0SL%FG1'H:.GELW+M]7#4W^GJ!?B"X?P4+BJE"KC@?2
-MI:H;W'HVV'OU%/K-:U0HAF;9+E/F&W$$0"I!**0+&4>6J653D1?G4V:>6BI;
-M4#0@[$G.L/OV.O4.[7`DJ*XBG4[&MFVSJA`K"H:BI0+^G0+#@JE+*T.,1!`E
-M*.^+/,"DY36'@:(33(1@^F!.&Q/!^U"AZ5''>2`_4G?2K^#%G4,(Q?3;:K-2
-MJJ5CBN,>-M66$(\$B"$V#=,3B(">#<HTZE++^E[PZ(%>:B=F0CHU"0"HH=)/
-M9PD5$]I2SY$*J!@NFVGOWT4::?:,*TDA*L:4IJ18UE(""4D!!<'BD]#H+,HS
-M2$@1+.&<=#;P%*@D/$6G,2N):O[12QA20]EP`\,+8_`,?HL3C/US`W:M^L8#
-MYF%%M`JPN>8]-D[#'&#C$!6OT40;E-T)XT["%`6H@@*=@@9Y8HJHD;.]/6,"
-MZ_/='):KW:K4N.F%H0O#14`H6>3)&BI!C#@++V4C$:'R*:`LT40Y$;<O8-KD
-M@.F0AU3$'['])1P:L]E&!E[$LP50[$2&&T/J>PYB%PUE)R-[P]K[@,X^?BP2
-ME$%ZW\$,0AE+6X+^I78V+U<X9,P+\X84;3/$T:0*X6;9U(<)NL`P261N8PS1
-MO$DUTQU1E!_(DB:GA%-;P16<'H%:"ZEL@'%-V&\(A"8!$,*MCYDC?$*5#GA&
-M+UYB:'/*53>_?UZF<GBU>?M)YK\A1P3)?C[)"'6AKL*,('(VP[[FI3?'#?DO
-M)SA=J#1"3.*-1;`<8RJ-(!07(M(LC6:`)(`@:Y4_@*AOB%80'5C(&)M@>%A]
->`03A;8?5JI>F&!NYJB@B`.1W?_%W)%.%"00Y,-V`
+M0EIH.3%!629361^[8GT``-I_W?__Z_Q5X__Z/__?8*?OWB8A_R2```4@`(`"
+M@0C0`[X.@;"X4N!H13U3:3U,TTF30-`T:9!IH:`:`!H&@`T-,@T&AD`TU`@:
+MFFDT](]$T3"&1@`",0`#3`$8`@TPFFF!HU%,IFHTV4TTT:`!HT`#0```#0`#
+MU#0``!QH:`-``T````&@````&0``#$`12(F2:1Z:GHU&$,$#1IHTR:#0```T
+M```-&F1B5C+"&F]A9Z?`U1J4+Y`J<.R%DQ,4_M&L-&]P!VH0THE"001`PKEQ
+ME0`&9.7LA`.V0`"_Z$%$0`=]@R7<U`7+0@TP@@H@#@C`$HA6!!B,-Q),IR03
+M8(41$0!KA`WX)758H0&@(6N=<U*JH8H:*:1FPW/EQB(U$,-:P=O>7`LU0AC!
+M%@7\Q3`%DJ%=(0D"('\[&MK[J*15!$`=K+&R-YNQ!N+%&C)7.T-#E1>IVJ[L
+M[Z9N]_H#7;&H;!)'O@,VY`YJ-R0)C14:^@C;.7"EG9(L(S&HOPA4)@D"R1@H
+M8DS22Y,"9B-XEZJ9"4Q@P/HBL$Q0GJHO'K.]Z9#V)6%C-*$=%1F\SI*/1TK=
+MN.<,!."80/-@)&42M3D9",BA1GJ5.?`:ESRT%@I33,AKD0*,&I02?X[HH)67
+M?]KD&>W9J3OH4Z3%F1O%/UTEWU%*2RH[CL6)ZPT:1!,462+PJ20)T"!&A"&%
+M+,$`D@@*B@D()X4/A92B1'-B)DEJF7R\W/V!V6_2O$!Q8R+C1PP!@B*!@)"4
+MD,2&P3N:C7$0P+4%#64U!CJ>BNO5*-8JS@"8'&/E4>D`.HTHL96`+%?`$^AF
+M()HE49JS"KT92H!#R%5R33$E7](2I&CAZW+#`AJ:J!&58)9S)AO3=?["VH1^
+M3#)/();9KC%[E1J,5<&N(1,S],$*[)-H$^"6Q`(((8@2$4OD0,1]$2P\U-F.
+M85F>3TM?8G8YMVM*;8!.`"X+$H#`R-ZGR2HE<-"5*MDB@R.>4'[#((D`-A%T
+MZM;_9X1L"$-E4B=@[24#0MD=22LJK0R`,8&T$A1G#I6(<HPN*X9/C$B77]P$
+MF3=#+R7Q0"!0[;X,(1A("E18EZ["7$YC6BSA`NQ@HH%THXC)7!90J[;2#1!H
+M!%&-/-%:31TQU=%BQ6)LBX\S(XB*C"82F+M5LTR"!.@$(9&R/<
+M#`M+J68NWY?P4YF=3=H)+D]8-YC6AN6+'O,\)E&/^)4,4$2&,<9CSR@V!F-P
+>@G!B;(\/.2E,^!VZA%!$`<!V_^+N2*<*$@/W;$^@
`
end