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
Bugs, which is subscribed to 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

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to