Changed error severity with TOC truncation to MISHAP

ZeroFiveEight
Thomas Schmitt 14 years ago
parent aa606552eb
commit bb9ef6b988
  1. 2
      cdrskin/cdrskin_timestamp.h
  2. 2
      libburn/libdax_msgs.h
  3. 25
      libburn/structure.c

@ -1 +1 @@
#define Cdrskin_timestamP "2008.11.27.081027"
#define Cdrskin_timestamP "2008.11.27.172124"

@ -531,7 +531,7 @@ Range "scdbackup" : 0x00020000 to 0x0002ffff
0x0002015c (FAILURE,HIGH) = Fifo size is smaller than desired peek buffer
0x0002015d (FAILURE,HIGH) = Fifo input ended short of desired peek buffer size
0x0002015e (FATAL,HIGH) = Fifo is already under consumption when peeking
0x0002015f (FAILURE,HIGH) = Damaged CD table-of-content detected and truncated
0x0002015f (MISHAP,HIGH) = Damaged CD table-of-content detected and truncated
libdax_audioxtr:
0x00020200 (SORRY,HIGH) = Cannot open audio source file

@ -532,7 +532,7 @@ int burn_disc_cd_toc_extensions(struct burn_disc *d, int flag)
int sidx= 0, tidx= 0;
struct burn_toc_entry *entry, *prev_entry= NULL;
/* ts A81126 : ticket 146 : There is a SIGSIGV in here */
/* ts A81126 : ticket 146 : There is a SIGSEGV in here */
char msg_data[321], *msg;
strcpy(msg_data,
@ -554,6 +554,14 @@ int burn_disc_cd_toc_extensions(struct burn_disc *d, int flag)
sidx, d->sessions);
goto failure;
}
/* ts A81126 : ticket 146 :
This is the main suspect for the SIGSEGV */
if (d->session[sidx]->leadout_entry == NULL) {
sprintf(msg,
" Session %d of %d: Leadout entry missing.",
sidx, d->sessions);
goto failure;
}
for (tidx = 0; tidx < d->session[sidx]->tracks + 1; tidx++) {
if (tidx < d->session[sidx]->tracks) {
if (d->session[sidx]->track[tidx] == NULL) {
@ -563,14 +571,15 @@ int burn_disc_cd_toc_extensions(struct burn_disc *d, int flag)
goto failure;
}
entry = d->session[sidx]->track[tidx]->entry;
if (entry == NULL) {
sprintf(msg,
"session %d of %d, track %d of %d, entry == NULL",
sidx, d->sessions, tidx,
d->session[sidx]->tracks);
goto failure;
}
} else
entry = d->session[sidx]->leadout_entry;
if (entry == NULL) {
sprintf(msg,
"session %d of %d, track %d of %d, entry == NULL",
sidx, d->sessions, tidx, d->session[sidx]->tracks);
goto failure;
}
entry->session_msb = 0;
entry->point_msb = 0;
entry->start_lba = burn_msf_to_lba(entry->pmin,
@ -593,7 +602,7 @@ int burn_disc_cd_toc_extensions(struct burn_disc *d, int flag)
return 1;
failure:
libdax_msgs_submit(libdax_messenger, -1, 0x0002015f,
LIBDAX_MSGS_SEV_FAILURE, LIBDAX_MSGS_PRIO_HIGH, msg_data, 0, 0);
LIBDAX_MSGS_SEV_MISHAP, LIBDAX_MSGS_PRIO_HIGH, msg_data, 0, 0);
d->sessions= sidx;
return 0;
}

Loading…
Cancel
Save