|
|
|
@ -707,7 +707,7 @@ int iso_md5_write_scdbackup_tag(Ecma119Image *t, char *tag_block, int flag)
|
|
|
|
|
void *ctx = NULL; |
|
|
|
|
off_t pos = 0, line_start; |
|
|
|
|
int record_len, block_len, res, i; |
|
|
|
|
char postext[20], md5[16], record[160]; |
|
|
|
|
char postext[40], md5[16], record[160]; |
|
|
|
|
|
|
|
|
|
line_start = strlen(tag_block); |
|
|
|
|
iso_md5_compute(t->checksum_ctx, tag_block, line_start); |
|
|
|
@ -721,14 +721,14 @@ int iso_md5_write_scdbackup_tag(Ecma119Image *t, char *tag_block, int flag)
|
|
|
|
|
sprintf(postext, "%u%9.9u", (unsigned int) (pos / 1000000000), |
|
|
|
|
(unsigned int) (pos % 1000000000)); |
|
|
|
|
else |
|
|
|
|
sprintf(postext, "%u", (unsigned int) pos), |
|
|
|
|
|
|
|
|
|
sprintf(postext, "%u", (unsigned int) pos); |
|
|
|
|
sprintf(record, "%s %s ", t->scdbackup_tag_parm, postext); |
|
|
|
|
record_len = strlen(record); |
|
|
|
|
for (i = 0; i < 16; i++) |
|
|
|
|
sprintf(record + record_len + 2 * i, |
|
|
|
|
"%2.2x", ((unsigned char *) md5)[i]); |
|
|
|
|
record_len+= 32; |
|
|
|
|
record_len += 32; |
|
|
|
|
|
|
|
|
|
res = iso_md5_start(&ctx); |
|
|
|
|
if (res < 0) |
|
|
|
|
goto ex; |
|
|
|
@ -744,6 +744,9 @@ int iso_md5_write_scdbackup_tag(Ecma119Image *t, char *tag_block, int flag)
|
|
|
|
|
block_len+= 32; |
|
|
|
|
tag_block[block_len++]= '\n'; |
|
|
|
|
|
|
|
|
|
if (t->scdbackup_tag_written != NULL) |
|
|
|
|
strncpy(t->scdbackup_tag_written, tag_block + line_start, |
|
|
|
|
block_len - line_start); |
|
|
|
|
res = ISO_SUCCESS; |
|
|
|
|
ex:; |
|
|
|
|
if (ctx != NULL) |
|
|
|
|