Letting isoburn_disc_erase() invalidate UDF extended descriptors if present
This commit is contained in:
parent
fa29d880b7
commit
e6fde3483c
@ -670,11 +670,32 @@ ex:;
|
|||||||
*/
|
*/
|
||||||
int isoburn_invalidate_iso(struct isoburn *o, int flag)
|
int isoburn_invalidate_iso(struct isoburn *o, int flag)
|
||||||
{
|
{
|
||||||
|
int end_ed_found= 0, i;
|
||||||
|
char *head;
|
||||||
|
|
||||||
|
head= (char *) o->target_iso_head;
|
||||||
/*
|
/*
|
||||||
* replace CD001 with CDXX1 in PVM.
|
* replace CD001 with CDXX1 in PVM.
|
||||||
* I think this is enought for invalidating an iso image
|
* I think this is enought for invalidating an iso image
|
||||||
*/
|
*/
|
||||||
strncpy((char*)o->target_iso_head + 16 * 2048 + 1, "CDXX1", 5);
|
strncpy(head + 16 * 2048 + 1, "CDXX1", 5);
|
||||||
|
|
||||||
|
/* Look for UDF volume recognition sequence and invalidate */
|
||||||
|
for(i= 17 * 2048; i < 32 * 2048; i+= 2048) {
|
||||||
|
if(end_ed_found) {
|
||||||
|
if(head[i] == 0 && strncmp(head + i + 1, "BEA01", 5) == 0)
|
||||||
|
strncpy(head + i + 1, "BEAX1", 5);
|
||||||
|
else if(head[i] == 0 && strncmp(head + i + 1, "NSR", 3) == 0)
|
||||||
|
strncpy(head + i + 1, "NSRX", 4);
|
||||||
|
else if(head[i] == 0 && strncmp(head + i + 1, "TEA", 3) == 0)
|
||||||
|
strncpy(head + i + 1, "TEAX", 4);
|
||||||
|
} else {
|
||||||
|
if(((unsigned char *) head)[i] == 0xff &&
|
||||||
|
strncmp(head + i + 1, "CD001", 5) == 0)
|
||||||
|
end_ed_found= 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return isoburn_activate_session(o->drive);
|
return isoburn_activate_session(o->drive);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Xorriso_timestamP "2016.04.27.092902"
|
#define Xorriso_timestamP "2016.05.03.075722"
|
||||||
|
Loading…
Reference in New Issue
Block a user