[Bug 1475250] Re: [isoinfo] could not extract large files
Taihsiang Ho
taihsiang.ho at canonical.com
Thu Jul 16 14:09:47 UTC 2015
in this case,
len is negative so the program does not begin to extract data in the while loop.
cdrkit-1.1.11/genisoimage/diag/isoinfo.c
631 extract_file(struct iso_directory_record *idr)
632 {
633 int extent, len, tlen;
634 unsigned char buff[2048];
635
636 #if defined(__CYGWIN32__) || defined(__CYGWIN__) || defined(__EMX__) || defined(__DJGPP__)
637 setmode(fileno(stdout), O_BINARY);
638 #endif
639
640 extent = isonum_733((unsigned char *)idr->extent);
641 len = isonum_733((unsigned char *)idr->size);
642
643 while (len > 0) {
644 #ifdef USE_SCG
645 readsecs(extent - sector_offset, buff, ISO_BLOCKS(sizeof (buff)));
646 tlen = (len > sizeof (buff) ? sizeof (buff) : len);
647 #else
648 lseek(fileno(infile), ((off_t)(extent - sector_offset)) << 11, SEEK_SET);
649 tlen = (len > sizeof (buff) ? sizeof (buff) : len);
650 read(fileno(infile), buff, tlen);
651 #endif
652 len -= tlen;
653 extent++;
654 write(STDOUT_FILENO, buff, tlen); /* FIXME: check return value */
655 }
656 }
(gdb) print len
$1 = -1565868032
--
You received this bug notification because you are a member of Ubuntu
Burning Team, which is subscribed to cdrkit in Ubuntu.
https://bugs.launchpad.net/bugs/1475250
Title:
[isoinfo] could not extract large files
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cdrkit/+bug/1475250/+subscriptions
More information about the Ubuntu-burning
mailing list