From 418e27ea68ce9aca22bde694c39e9503c59bee40 Mon Sep 17 00:00:00 2001
From: Ryan Cumming <bodnar42@bodnar42.dhs.org>
Date: Tue, 9 Jan 2001 20:54:11 +0000
Subject: [PATCH] Make CDROM_GetLabel return 0 in the event of failure, and
 make the default label for drives a string of 11 spaces.

---
 files/drive.c |  2 +-
 misc/cdrom.c  | 12 +++++-------
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/files/drive.c b/files/drive.c
index 4881f500acd..3e18f90c20a 100644
--- a/files/drive.c
+++ b/files/drive.c
@@ -189,7 +189,7 @@ int DRIVE_Init(void)
             drive->ino      = drive_stat_buffer.st_ino;
 
             /* Get the drive label */
-            PROFILE_GetWineIniString( name, "Label", name, drive->label_conf, 12 );
+            PROFILE_GetWineIniString( name, "Label", "", drive->label_conf, 12 );
             if ((len = strlen(drive->label_conf)) < 11)
             {
                 /* Pad label with spaces */
diff --git a/misc/cdrom.c b/misc/cdrom.c
index 083dcc1fe8b..065f484a7b7 100644
--- a/misc/cdrom.c
+++ b/misc/cdrom.c
@@ -779,8 +779,6 @@ end:
     return serial;
 }
 
-static const char empty_label[] = "           ";
-
 /**************************************************************************
  *				CDROM_Data_GetLabel		[internal]
  */
@@ -822,13 +820,12 @@ DWORD CDROM_Data_GetLabel(WINE_CDAUDIO* wcda, char *label, int parentdev)
 		strncpy(label, (LPSTR)label_read, 11);
 		label[11] = '\0';
 	    }
-	    return 0;
+	    return 1;
 	}
     }
 failure:
     CDROM_CLOSE( dev, parentdev );
     ERR("error reading label !\n");
-    strcpy(label, empty_label);
     return 0;
 }
 
@@ -866,22 +863,23 @@ DWORD CDROM_GetLabel(int drive, char *label)
 
 		/* common code *here* !! */
 		/* hopefully a data CD */
-		CDROM_Data_GetLabel(&wcda, label, dev);
+		if (!CDROM_Data_GetLabel(&wcda, label, dev))
+			ret = 0;
 		break;
 
 	    case CDS_MIXED:
 		cdname = "Mixed mode";
 		ERR("We don't have a way of determining the label of a mixed mode CD - Linux doesn't allow raw access !!\n");
 		/* fall through */
+
 	    case CDS_NO_INFO:
 		if (!cdname) cdname = "No_info";
-		strcpy(label, empty_label);
+		ret = 0;
 		break;
 
 	    default:
                 WARN("Strange CD type (%d) or empty ?\n", media);
 		cdname = "Strange/empty";
-	        strcpy(label, empty_label);
 	        ret = 0;
 		break;
 	}
-- 
GitLab