From 88da4e9ead4acd407b3498c5d2828d4739bf6ee7 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Mon, 23 Jan 2012 10:10:19 +0000 Subject: [PATCH] Prevented SIGSEGV with testing drive for being prepared for writing --- cdrskin/cdrskin_timestamp.h | 2 +- libburn/async.c | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index 27107c2..ce45d0a 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2012.01.22.124929" +#define Cdrskin_timestamP "2012.01.22.125048" diff --git a/libburn/async.c b/libburn/async.c index f68c88b..1f51fd6 100644 --- a/libburn/async.c +++ b/libburn/async.c @@ -1,7 +1,7 @@ /* -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 8; -*- */ /* Copyright (c) 2004 - 2006 Derek Foreman, Ben Jansens - Copyright (c) 2006 - 2011 Thomas Schmitt + Copyright (c) 2006 - 2012 Thomas Schmitt Provided under GPL version 2 or later. */ @@ -587,6 +587,7 @@ void burn_disc_write(struct burn_write_opts *opts, struct burn_disc *disc) struct write_opts o; char *reasons= NULL; struct burn_drive *d; + int mvalid; d = opts->drive; @@ -634,12 +635,18 @@ void burn_disc_write(struct burn_write_opts *opts, struct burn_disc *disc) } /* ts A61007 : obsolete Assert in spc_select_write_params() */ - if (d->drive_role == 1 && d->mdata->valid <= 0) { - libdax_msgs_submit(libdax_messenger, + if (d->drive_role == 1) { + mvalid = 0; + if (d->mdata != NULL) + if (d->mdata->valid > 0) + mvalid = 1; + if (!mvalid) { + libdax_msgs_submit(libdax_messenger, d->global_index, 0x00020113, LIBDAX_MSGS_SEV_SORRY, LIBDAX_MSGS_PRIO_HIGH, "Drive capabilities not inquired yet", 0, 0); - return; + return; + } } /* ts A70219 : intended to replace all further tests here and many