# HG changeset patch # User Pascal Bellard # Date 1490889702 -7200 # Node ID f01ec3e34a08e2a551560f26ed7a5edcab7bcd3c # Parent 7144509c74731a78f1723191a524209aab813405 linld/tazboot: fix magic (again) diff -r 7144509c7473 -r f01ec3e34a08 linld/stuff/src/ISO9660.H --- a/linld/stuff/src/ISO9660.H Thu Mar 30 17:22:13 2017 +0200 +++ b/linld/stuff/src/ISO9660.H Thu Mar 30 18:01:42 2017 +0200 @@ -8,9 +8,9 @@ #define DIRSECTORSZ (SECTORSZ/256) extern struct isostate { int fd; + unsigned short filemod; unsigned long fileofs; unsigned long filesize; - unsigned short filemod; char *filename; //private dirsizetype curdirsize, dirsize; diff -r 7144509c7473 -r f01ec3e34a08 linld/stuff/src/TAZBOOT.CPP --- a/linld/stuff/src/TAZBOOT.CPP Thu Mar 30 17:22:13 2017 +0200 +++ b/linld/stuff/src/TAZBOOT.CPP Thu Mar 30 18:01:42 2017 +0200 @@ -118,7 +118,7 @@ } else if (magic > 0) { char *initrd = fallback; - static const unsigned long initrddesc = 20L; + static const unsigned long initrddesc = 18L; if (rootfs[0]) { initrd = rootfs; @@ -129,8 +129,8 @@ addinitrd(); } if (*init && isolseek(&initrddesc) != -1) { - read(x->fd, &x->fileofs, 8); // and x->filesize - magic = x->filesize; + read(x->fd, &x->filemod, 10); // + x->fileofs & x->filesize + magic = x->filemod; x->fileofs &= 0xFFFFL; x->fileofs -= 0xC0L + (x->filesize &= 0xFFFF); if (((short *) &x->fileofs)[1] == 0) addinitrd(); diff -r 7144509c7473 -r f01ec3e34a08 syslinux/stuff/iso2exe/bootiso.S --- a/syslinux/stuff/iso2exe/bootiso.S Thu Mar 30 17:22:13 2017 +0200 +++ b/syslinux/stuff/iso2exe/bootiso.S Thu Mar 30 18:01:42 2017 +0200 @@ -20,6 +20,7 @@ .word 4064-(CODESZ/16) // Maximum extra paragraphs needed .word 0xFFF0 // Initial (relative) SS value .word 0xFFFE // Initial SP value +magic: .word 0 // Checksum .word EXEADRS(exestart) // Initial IP value .word 0xFFF0 // Initial (relative) CS value diff -r 7144509c7473 -r f01ec3e34a08 syslinux/stuff/iso2exe/init --- a/syslinux/stuff/iso2exe/init Thu Mar 30 17:22:13 2017 +0200 +++ b/syslinux/stuff/iso2exe/init Thu Mar 30 18:01:42 2017 +0200 @@ -138,7 +138,7 @@ checkmagic() { - [ -s $1 ] && [ $(getarg magic) == $(get 24 $1 4) ] + [ -s $1 ] && [ $(getarg magic) == $(get 18 $1 2) ] } getiso()