wok-current rev 23811
linld/isoboot: canonicalize filename
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Mon May 25 16:38:34 2020 +0000 (2020-05-25) |
parents | d33c3c211ef8 |
children | ec56ab0f8e5b |
files | linld/stuff/src/_ISOBEG.ASM syslinux/stuff/iso2exe/init syslinux/stuff/iso2exe/taziso |
line diff
1.1 --- a/linld/stuff/src/_ISOBEG.ASM Mon May 25 10:10:30 2020 +0000 1.2 +++ b/linld/stuff/src/_ISOBEG.ASM Mon May 25 16:38:34 2020 +0000 1.3 @@ -60,36 +60,25 @@ 1.4 ; build arg 1.5 ;*************************************************************** 1.6 1.7 - mov bx,endbzimage-bzimage 1.8 mov si,80h 1.9 - mov di,si 1.10 lodsb 1.11 - add [di],bl 1.12 cbw 1.13 - mov bp,-1 1.14 -skipspace: 1.15 - inc bp 1.16 - cmp [byte bp+si]," " 1.17 - je skipspace 1.18 - xchg ax,cx 1.19 - add si,cx 1.20 + xchg ax,bx 1.21 + mov [bx+si],bh ; set EOS 1.22 +searchStart: 1.23 + lodsb 1.24 + cmp al,0 1.25 + je _abort 1.26 + cmp al,' ' 1.27 + je searchStart 1.28 dec si 1.29 - lea di,[bx+si] 1.30 - mov [di+1],bh 1.31 - sub cx,bp 1.32 - std 1.33 - rep 1.34 - movsb 1.35 + mov di,offset filename 1.36 push di 1.37 - mov si,offset endbzimage-1 1.38 - mov cl,bl 1.39 - rep 1.40 - movsb 1.41 + mov ah,60h ; canonicalize filename 1.42 + int 21h 1.43 + jc _abort 1.44 + ifdef WITH_LONG_FILENAME 1.45 pop si 1.46 - inc si 1.47 - cld 1.48 - 1.49 - ifdef LONG_FILENAME 1.50 mov ax,716Ch 1.51 xor bx,bx ; R/O 1.52 ;xor cx,cx ; attributes 1.53 @@ -97,10 +86,12 @@ 1.54 stc 1.55 int 21h 1.56 jnc opened 1.57 + mov dx,si 1.58 + else 1.59 + pop dx 1.60 endif 1.61 mov ax,3d00h ; read-only+compatibility 1.62 ;mov cl,0 ; attribute mask 1.63 - mov dx,si 1.64 int 21h 1.65 jnc opened 1.66 1.67 @@ -117,9 +108,9 @@ 1.68 jc_abort: 1.69 jc _abort 1.70 1.71 +; patch magic 1.72 ;*************************************************************** 1.73 1.74 -; patch magic 1.75 extrn @readmenu$qv:near 1.76 call @readmenu$qv 1.77 mov ax,[_isostate.filemod] 1.78 @@ -134,7 +125,7 @@ 1.79 jnz @@loop1 1.80 push ds 1.81 pop es 1.82 - lea di,[bp+magic-bzimage+81h] 1.83 + mov di,offset magic 1.84 @@loop2: 1.85 pop ax 1.86 add al,'0' 1.87 @@ -142,6 +133,7 @@ 1.88 loop @@loop2 1.89 1.90 ; patch initrd 1.91 +;*************************************************************** 1.92 cwd 1.93 or [_isostate.curdirsize],-1 1.94 jmp patchtest 1.95 @@ -158,7 +150,7 @@ 1.96 jne patchlp 1.97 cmp dx,100h 1.98 je initrddone 1.99 - lea di,[bp+rootfs-bzimage+87h] 1.100 + mov di,offset dotgz 1.101 or dh,dh 1.102 je modify 1.103 add di,4 1.104 @@ -168,14 +160,32 @@ 1.105 movsw 1.106 modify: 1.107 xchg ax,dx 1.108 + mov ah,'.' 1.109 + stosw 1.110 + mov ax,'zg' 1.111 + stosw 1.112 + mov ax,'!,' 1.113 + stosw 1.114 +initrddone: 1.115 + 1.116 +;*************************************************************** 1.117 + 1.118 + mov si, offset cmdline 1.119 + mov di, 82h 1.120 +copy: 1.121 + mov ah,al 1.122 + lodsb 1.123 + cmp al,' ' 1.124 + jne docopy 1.125 + cmp al,ah 1.126 + je copy 1.127 +docopy: 1.128 stosb 1.129 - mov si,offset dotgz 1.130 - mov cl,5 1.131 - rep 1.132 - movsb 1.133 -initrddone: 1.134 - 1.135 -;*************************************************************** 1.136 + cmp al,0 1.137 + jnz copy 1.138 + xchg di,ax 1.139 + sub al, 82h 1.140 + mov [80h],al 1.141 1.142 mov ax,offset linld 1.143 call iso_open 1.144 @@ -183,6 +193,7 @@ 1.145 mov cx,[word _isostate.filesize] 1.146 mov dx,100h 1.147 jmp near unfold 1.148 + 1.149 patchlp: 1.150 mov si,[_isostate.filename] 1.151 mov di,offset rootfs 1.152 @@ -204,9 +215,10 @@ 1.153 db "/boot",0 1.154 linld: 1.155 db "linld.com",0 1.156 -bzimage: 1.157 +cmdline: 1.158 db "-f " 1.159 - ;db "image=boot\bzImage " 1.160 + ;db "image=boot\" 1.161 + ;db "bzImage " 1.162 db "initrd=" 1.163 rootfs: 1.164 db "rootfs" 1.165 @@ -218,7 +230,7 @@ 1.166 magic: 1.167 db "0 bootfrom=" 1.168 ; "65535 bootfrom=" 1.169 -endbzimage: 1.170 +filename: 1.171 1.172 1.173 ;***************************************************************
2.1 --- a/syslinux/stuff/iso2exe/init Mon May 25 10:10:30 2020 +0000 2.2 +++ b/syslinux/stuff/iso2exe/init Mon May 25 16:38:34 2020 +0000 2.3 @@ -134,7 +134,7 @@ 2.4 uudecode - >> $1 << EOT 2.5 HEADERCODE 2.6 EOT 2.7 - ddq if=/mnt/slitaz/boot/linld.com >> $1 2.8 + ddq if=/media/slitaz/boot/linld.com >> $1 2.9 } 2.10 2.11 checkmagic()
3.1 --- a/syslinux/stuff/iso2exe/taziso Mon May 25 10:10:30 2020 +0000 3.2 +++ b/syslinux/stuff/iso2exe/taziso Mon May 25 16:38:34 2020 +0000 3.3 @@ -40,7 +40,7 @@ 3.4 uudecode - >> $1 << EOT 3.5 HEADERCODE 3.6 EOT 3.7 - ddq if=/mnt/slitaz/boot/linld.com >> $1 3.8 + ddq if=$media/boot/linld.com >> $1 3.9 } 3.10 3.11 uncpio()