wok-next diff syslinux/stuff/iso2exe/iso2exe.c @ rev 14264

syslinux/iso2exe: fix initrd offset
author Pascal Bellard <pascal.bellard@slitaz.org>
date Mon Apr 01 09:45:40 2013 +0200 (2013-04-01)
parents 0c880b8c93be
children ff85ea851c53
line diff
     1.1 --- a/syslinux/stuff/iso2exe/iso2exe.c	Sat Mar 30 20:33:34 2013 +0100
     1.2 +++ b/syslinux/stuff/iso2exe/iso2exe.c	Mon Apr 01 09:45:40 2013 +0200
     1.3 @@ -4,7 +4,9 @@
     1.4  #include "iso2exe.h"
     1.5  
     1.6  static int fd;
     1.7 -static char buffer[2048];
     1.8 +static char tazlitoinfo[10*1024];
     1.9 +#define buffer tazlitoinfo
    1.10 +#define BUFFERSZ 2048
    1.11  
    1.12  static void quit(char *msg)
    1.13  {
    1.14 @@ -14,8 +16,8 @@
    1.15  
    1.16  static void readsector(unsigned long sector)
    1.17  {
    1.18 -	if (lseek(fd, sector * sizeof(buffer), SEEK_SET) == -1 ||
    1.19 -	    read(fd, buffer, sizeof(buffer)) != sizeof(buffer))
    1.20 +	if (lseek(fd, sector * BUFFERSZ, SEEK_SET) == -1 ||
    1.21 +	    read(fd, buffer, BUFFERSZ) != BUFFERSZ)
    1.22  		quit("read sector failure");
    1.23  }
    1.24  
    1.25 @@ -28,7 +30,6 @@
    1.26  	unsigned long size, catalog, lba;
    1.27  	int cylinders, i, j, isohybrid;
    1.28  	unsigned n;
    1.29 -	char tazlitoinfo[10*1024];
    1.30  #ifndef WIN32
    1.31  	char *bootiso;
    1.32  	for (bootiso = (char *) main;
    1.33 @@ -86,9 +87,9 @@
    1.34  	// Compute the checksum
    1.35  	lseek(fd, 0UL, SEEK_SET);
    1.36  	for (i = 66, n = 0, j = 0; j < 16; j++, i = 0) {
    1.37 -		if (read(fd, buffer, sizeof(buffer)) != sizeof(buffer))
    1.38 +		if (read(fd, buffer, BUFFERSZ) != BUFFERSZ)
    1.39  			goto nochksum;
    1.40 -		for (; i < sizeof(buffer); i += 2)
    1.41 +		for (; i < BUFFERSZ; i += 2)
    1.42  			n += * (unsigned short *) (buffer + i);
    1.43  	}
    1.44  	* (unsigned short *) (bootiso + 64) = -n;