A cleaner cleanup that avoids passing an off_t to scanf

This commit is contained in:
Eric Andersen 2002-12-11 21:45:08 +00:00
parent 9f4395c54e
commit f4b273cbb4

View File

@ -85,11 +85,15 @@ extern char get_header_cpio(archive_handle_t *archive_handle)
error_msg_and_die("Unsupported cpio format, use newc or crc");
}
sscanf(cpio_header, "%6c%8x%8x%8x%8x%8x%8lx%8lx%16c%8x%8x%8x%8c",
dummy, &inode, (unsigned int*)&file_header->mode,
(unsigned int*)&file_header->uid, (unsigned int*)&file_header->gid,
&nlink, &file_header->mtime, (unsigned long*)&file_header->size,
dummy, &major, &minor, &namesize, dummy);
{
unsigned long tmpsize;
sscanf(cpio_header, "%6c%8x%8x%8x%8x%8x%8lx%8lx%16c%8x%8x%8x%8c",
dummy, &inode, (unsigned int*)&file_header->mode,
(unsigned int*)&file_header->uid, (unsigned int*)&file_header->gid,
&nlink, &file_header->mtime, &tmpsize,
dummy, &major, &minor, &namesize, dummy);
file_header->size = tmpsize;
}
file_header->name = (char *) xmalloc(namesize + 1);
archive_xread_all(archive_handle, file_header->name, namesize); /* Read in filename */