diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index 2360dab..6011c83 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2009.06.02.162841" +#define Cdrskin_timestamP "2009.06.02.172201" diff --git a/libburn/drive.c b/libburn/drive.c index 0019ebf..87f91e3 100644 --- a/libburn/drive.c +++ b/libburn/drive.c @@ -930,7 +930,7 @@ int burn_drive_scan_sync(struct burn_drive_info *drives[], */ unsigned char scanned[32]; unsigned count = 0; - int i; + int i, ret; /* ts A61007 : moved up to burn_drive_scan() */ /* a ssert(burn_running); */ @@ -994,11 +994,15 @@ int burn_drive_scan_sync(struct burn_drive_info *drives[], } */ /* ts A90602 : A single call shall do (rather than a loop) */ - drive_getcaps(&drive_array[i], &(*drives)[*n_drives]); - - (*n_drives)++; + ret = drive_getcaps(&drive_array[i], &(*drives)[*n_drives]); + if (ret > 0) + (*n_drives)++; scanned[i / 8] |= 1 << (i % 8); } + if (*drives != NULL && *n_drives == 0) { + free ((char *) *drives); + *drives = NULL; + } return(1); }