Lines 759-776
Link Here
|
759 |
de_allocate(disc_de_t *de, char *filename) |
759 |
de_allocate(disc_de_t *de, char *filename) |
760 |
{ |
760 |
{ |
761 |
off_t size; |
761 |
off_t size; |
762 |
char ch; |
762 |
char ch[512]; |
|
|
763 |
ssize_t nb; |
763 |
|
764 |
|
764 |
size = de_getsize(de); |
765 |
size = de_getsize(de); |
765 |
if (de_lseek(de, size - 1, SEEK_SET) == -1) { |
766 |
if (de_lseek(de, size - 512, SEEK_SET) == -1) { |
766 |
iscsi_trace_error(__FILE__, __LINE__, "error seeking \"%s\"\n", filename); |
767 |
iscsi_trace_error(__FILE__, __LINE__, "error seeking \"%s\"\n", filename); |
767 |
return 0; |
768 |
return 0; |
768 |
} |
769 |
} |
769 |
if (de_read(de, &ch, 1) == -1) { |
770 |
if ((nb = de_read(de, &ch, 512)) == -1) { |
770 |
iscsi_trace_error(__FILE__, __LINE__, "error reading \"%s\"", filename); |
771 |
iscsi_trace_error(__FILE__, __LINE__, "error reading \"%s\"", filename); |
771 |
return 0; |
772 |
return 0; |
772 |
} |
773 |
} |
773 |
if (de_write(de, &ch, 1) == -1) { |
774 |
if (de_write(de, &ch, 512 - nb) == -1) { |
774 |
iscsi_trace_error(__FILE__, __LINE__, "error writing \"%s\"", filename); |
775 |
iscsi_trace_error(__FILE__, __LINE__, "error writing \"%s\"", filename); |
775 |
return 0; |
776 |
return 0; |
776 |
} |
777 |
} |