# HG changeset patch # User Pascal Bellard # Date 1468484208 -7200 # Node ID 3432c28d8372db410a95d1d7911ddb973b4d41c0 # Parent 4a7993e37b8da1e94610c5151a7af128cf47edce syslinux: fix isofs checksum diff -r 4a7993e37b8d -r 3432c28d8372 ipxe/stuff/ipxe.cmd --- a/ipxe/stuff/ipxe.cmd Wed Jul 13 20:37:50 2016 -0400 +++ b/ipxe/stuff/ipxe.cmd Thu Jul 14 10:16:48 2016 +0200 @@ -1,18 +1,20 @@ #!ipxe set menu-timeout 3000 -dhcp || +dhcp || echo No DHCP :menu -menu SliTaz net boot menu +menu SliTaz net boot menu ${ip} ${gateway} ${dns} item --key b boot Local boot -item --key l lan Your PXE boot +item --key l lan Your PXE boot ${filename} item --key w web SliTaz WEB boot item --key r rolling SliTaz development version item --key c config iPXE configuration item --key e exit iPXE command line choose --timeout ${menu-timeout} --default web target || goto exit set menu-timeout 0 +isset $(ip} || dhcp || echo No DHCP again +isset ${dns} || set dns 8.8.8.8 goto ${target} :boot diff -r 4a7993e37b8d -r 3432c28d8372 syslinux/stuff/extra/md5sum.c --- a/syslinux/stuff/extra/md5sum.c Wed Jul 13 20:37:50 2016 -0400 +++ b/syslinux/stuff/extra/md5sum.c Thu Jul 14 10:16:48 2016 +0200 @@ -739,6 +739,7 @@ static int has_custom_config(void) { const union syslinux_derivative_info *sdi; + int retry=0; if (got_config) goto done; @@ -747,24 +748,27 @@ goto fail; disk_get_params(sdi->iso.drive_number, &diskinfo); custom_buffer = disk_read_sectors(&diskinfo, 32768 / diskinfo.bps, 1); - got_config = (16 + *(unsigned long *) (custom_buffer + 80)) - * 2048 / diskinfo.bps; - free(custom_buffer); - custom_buffer = disk_read_sectors(&diskinfo, got_config, 1); - if (!memcmp(custom_buffer,"#!boot ",7)) { - char *p = custom_buffer+7+32+1; + got_config = (*(unsigned long *) (custom_buffer + 80) * 2048) / diskinfo.bps; + do { + free(custom_buffer); + custom_buffer = disk_read_sectors(&diskinfo, got_config, 1); + if (!memcmp(custom_buffer,"#!boot ",7)) { + char *p = custom_buffer+7+32+1; - if (!memcmp(p,"append=",7)) { - custom_cmdline = p + 7; - p = strchr(p,'\n'); - *p++ = 0; - } - if (!memcmp(p,"initrd:",7)) { - custom_initrdlen = strtoul(p + 7, &custom_initrdbase, 10); - custom_initrdbase++; - } - return 1; - } + if (!memcmp(p,"append=",7)) { + custom_cmdline = p + 7; + p = strchr(p,'\n'); + *p++ = 0; + } + if (!memcmp(p,"initrd:",7)) { + custom_initrdlen = strtoul(p + 7, &custom_initrdbase, 10); + custom_initrdbase++; + } + return 1; + } + got_config += 16UL; + retry = 1 - retry; + } while (retry); fail: got_config = -1; done: diff -r 4a7993e37b8d -r 3432c28d8372 syslinux/stuff/iso2exe/init --- a/syslinux/stuff/iso2exe/init Wed Jul 13 20:37:50 2016 -0400 +++ b/syslinux/stuff/iso2exe/init Thu Jul 14 10:16:48 2016 +0200 @@ -724,7 +724,7 @@ { dotwait "Checking iso image" [ "$(ddq if=/mnt/$ISO bs=2k skip=16 \ - count=$(echo $(get 32848 /mnt/$ISO 4)) | md5sum)" == \ + count=$(($(get 32848 /mnt/$ISO 4)-16)) | md5sum)" == \ "$(ddq if=/mnt/$ISO bs=16 count=1 skip=2047 | od -N 16 -t x1 -An | \ sed 's/ //g') -" ] && echo "OK" || echo "ERROR" echo -en "\rChecking iso hybrid boot..." diff -r 4a7993e37b8d -r 3432c28d8372 syslinux/stuff/iso2exe/iso2exe.c --- a/syslinux/stuff/iso2exe/iso2exe.c Wed Jul 13 20:37:50 2016 -0400 +++ b/syslinux/stuff/iso2exe/iso2exe.c Thu Jul 14 10:16:48 2016 +0200 @@ -237,7 +237,7 @@ md5_begin(); while ((count = read(fd, buffer, BUFFERSZ)) > 0) { if (sectors == 0) - sectors = LONG(buffer + 80); + sectors = LONG(buffer + 80) - 16UL; md5_hash(buffer, count); if (--sectors == 0) break; diff -r 4a7993e37b8d -r 3432c28d8372 syslinux/stuff/iso2exe/iso2exe.sh --- a/syslinux/stuff/iso2exe/iso2exe.sh Wed Jul 13 20:37:50 2016 -0400 +++ b/syslinux/stuff/iso2exe/iso2exe.sh Thu Jul 14 10:16:48 2016 +0200 @@ -470,7 +470,7 @@ ddq bs=1 seek=$((0x7FDE)) count=15 conv=notrunc of=$1 if [ $(stat -c %s $1) -gt 34816 ]; then echo "Adding ISO image md5 at 7FF0 (16 bytes) ..." - echo -en "$(ddq if=$1 bs=2k skip=16 count=$(get 32848 $1 4) | \ + echo -en "$(ddq if=$1 bs=2k skip=16 count=$(($(get 32848 "$1" 4)-16)) | \ md5sum | cut -c-32 | sed 's/\(..\)/\\x\1/g')" | \ ddq bs=16 seek=2047 conv=notrunc of=$1 fi diff -r 4a7993e37b8d -r 3432c28d8372 syslinux/stuff/iso2exe/taziso --- a/syslinux/stuff/iso2exe/taziso Wed Jul 13 20:37:50 2016 -0400 +++ b/syslinux/stuff/iso2exe/taziso Thu Jul 14 10:16:48 2016 +0200 @@ -898,7 +898,7 @@ { dotwait "Checking iso image" [ "$(ddq if="$ISO" bs=2k skip=16 \ - count=$(echo $(get 32848 "$ISO" 4)) | md5sum)" == \ + count=$(($(get 32848 "$ISO" 4)-16)) | md5sum)" == \ "$(ddq if="$ISO" bs=16 count=1 skip=2047 | od -N 16 -t x1 -An | \ sed 's/ //g') -" ] && echo "OK" || echo "ERROR" echo -en "\rChecking iso hybrid boot..."