Fix new bug introduced when fixing previous bug.
This commit is contained in:
parent
b501546627
commit
e6593c9738
@ -243,6 +243,7 @@ int filesrc_writer_write_data(IsoImageWriter *writer)
|
||||
Ecma119Image *t;
|
||||
IsoFileSrc *file;
|
||||
IsoFileSrc **filelist;
|
||||
char *name;
|
||||
char buffer[BLOCK_SIZE];
|
||||
|
||||
if (writer == NULL) {
|
||||
@ -265,12 +266,12 @@ int filesrc_writer_write_data(IsoImageWriter *writer)
|
||||
uint32_t nblocks = DIV_UP(iso_file_src_get_size(file), BLOCK_SIZE);
|
||||
|
||||
res = filesrc_open(file);
|
||||
name = iso_stream_get_name(file->stream);
|
||||
if (res < 0) {
|
||||
/*
|
||||
* UPS, very ugly error, the best we can do is just to write
|
||||
* 0's to image
|
||||
*/
|
||||
char *name = iso_stream_get_name(file->stream);
|
||||
res = iso_msg_submit(t->image->id, ISO_FILE_CANT_WRITE, res,
|
||||
"File \"%s\" can't be opened. Filling with 0s.", name);
|
||||
free(name);
|
||||
@ -287,7 +288,6 @@ int filesrc_writer_write_data(IsoImageWriter *writer)
|
||||
}
|
||||
continue;
|
||||
} else if (res > 1) {
|
||||
char *name = iso_stream_get_name(file->stream);
|
||||
res = iso_msg_submit(t->image->id, ISO_FILE_CANT_WRITE, 0,
|
||||
"Size of file \"%s\" has changed. It will be %s", name,
|
||||
(res == 2 ? "truncated" : "padded with 0's"));
|
||||
@ -297,12 +297,14 @@ int filesrc_writer_write_data(IsoImageWriter *writer)
|
||||
return res; /* aborted due to error severity */
|
||||
}
|
||||
}
|
||||
iso_msg_debug(t->image->id, "Writing file %s", name);
|
||||
free(name);
|
||||
|
||||
/* write file contents to image */
|
||||
for (b = 0; b < nblocks; ++b) {
|
||||
int wres;
|
||||
res = filesrc_read(file, buffer, BLOCK_SIZE);
|
||||
if (res <= 0) {
|
||||
if (res < 0) {
|
||||
/* read error */
|
||||
break;
|
||||
}
|
||||
|
@ -620,7 +620,7 @@ int ifs_read(IsoFileSource *src, void *buf, size_t count)
|
||||
/* how much can I read */
|
||||
bytes = MIN(BLOCK_SIZE - (data->data.offset % BLOCK_SIZE),
|
||||
count - read);
|
||||
if (data->data.offset + (off_t)bytes > data->info.st_size) {
|
||||
if (data->data.offset + (off_t)bytes > data->info.st_size) {
|
||||
bytes = data->info.st_size - data->data.offset;
|
||||
}
|
||||
orig = data->data.content;
|
||||
|
Loading…
Reference in New Issue
Block a user