Re: ANNOUNCE: mdadm 2.6.2 - A tool for managing Soft RAID under Linux

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Neil,

On Tuesday, 29. May 2007, you wrote:
> > cc1: warnings being treated as errors
> > sysfs.c: In function 'sysfs_read':
> > sysfs.c:97: warning: value computed is not used
> > sysfs.c:119: warning: value computed is not used
> > sysfs.c:127: warning: value computed is not used
> > sysfs.c:133: warning: value computed is not used
> > sysfs.c:139: warning: value computed is not used
> > sysfs.c:178: warning: value computed is not used
>
> Those are bogus warnings. Each is
> 	strcpy(base, "xxxxx");
> and base most certainly is used., though I can see how gcc might not
> notice if it is being too clever. Maybe you need to get gcc-4.1.2?
> or
>    make CWFLAGS=-Wall

Holger Kiehl was right, it complained about the unused return value.
Please see the attached patch.

Thomas
diff -u -r -p mdadm-2.6.2/Detail.c mdadm.warning/Detail.c
--- mdadm-2.6.2/Detail.c	Mon May 21 06:25:50 2007
+++ mdadm.warning/Detail.c	Wed May 30 10:52:32 2007
@@ -59,7 +59,7 @@ int Detail(char *dev, int brief, int exp
 	void *super = NULL;
 	int rv = test ? 4 : 1;
 	int avail_disks = 0;
-	char *avail;
+	char *avail = NULL;
 
 	if (fd < 0) {
 		fprintf(stderr, Name ": cannot open %s: %s\n",
diff -u -r -p mdadm-2.6.2/sysfs.c mdadm.warning/sysfs.c
--- mdadm-2.6.2/sysfs.c	Thu Dec 21 06:44:22 2006
+++ mdadm.warning/sysfs.c	Wed May 30 10:55:43 2007
@@ -94,7 +94,7 @@ struct sysarray *sysfs_read(int fd, int 
 
 	sra->devs = NULL;
 	if (options & GET_VERSION) {
-		strcpy(base, "metadata_version");
+		(void)strcpy(base, "metadata_version");
 		if (load_sys(fname, buf))
 			goto abort;
 		if (strncmp(buf, "none", 4) == 0)
@@ -104,19 +104,19 @@ struct sysarray *sysfs_read(int fd, int 
 			       &sra->major_version, &sra->minor_version);
 	}
 	if (options & GET_LEVEL) {
-		strcpy(base, "level");
+		(void)strcpy(base, "level");
 		if (load_sys(fname, buf))
 			goto abort;
 		sra->level = map_name(pers, buf);
 	}
 	if (options & GET_LAYOUT) {
-		strcpy(base, "layout");
+		(void)strcpy(base, "layout");
 		if (load_sys(fname, buf))
 			goto abort;
 		sra->layout = strtoul(buf, NULL, 0);
 	}
 	if (options & GET_COMPONENT) {
-		strcpy(base, "component_size");
+		(void)strcpy(base, "component_size");
 		if (load_sys(fname, buf))
 			goto abort;
 		sra->component_size = strtoull(buf, NULL, 0);
@@ -124,19 +124,19 @@ struct sysarray *sysfs_read(int fd, int 
 		sra->component_size *= 2;
 	}
 	if (options & GET_CHUNK) {
-		strcpy(base, "chunk_size");
+		(void)strcpy(base, "chunk_size");
 		if (load_sys(fname, buf))
 			goto abort;
 		sra->chunk = strtoul(buf, NULL, 0);
 	}
 	if (options & GET_CACHE) {
-		strcpy(base, "stripe_cache_size");
+		(void)strcpy(base, "stripe_cache_size");
 		if (load_sys(fname, buf))
 			goto abort;
 		sra->cache_size = strtoul(buf, NULL, 0);
 	}
 	if (options & GET_MISMATCH) {
-		strcpy(base, "mismatch_cnt");
+		(void)strcpy(base, "mismatch_cnt");
 		if (load_sys(fname, buf))
 			goto abort;
 		sra->mismatch_cnt = strtoul(buf, NULL, 0);
@@ -175,7 +175,7 @@ struct sysarray *sysfs_read(int fd, int 
 		dev->role = strtoul(buf, &ep, 10);
 		if (*ep) dev->role = -1;
 
-		strcpy(dbase, "block/dev");
+		(void)strcpy(dbase, "block/dev");
 		if (load_sys(fname, buf))
 			goto abort;
 		sscanf(buf, "%d:%d", &dev->major, &dev->minor);

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux