Package: giftrans
Version: 1.12.2-18
Tags: patch
Usertags: origin-ubuntu ubuntu-patch vivid

make[1]: Entering directory '/tmp/buildd/giftrans-1.12.2'
cc -g -Wall -Werror -pedantic-errors -Wfatal-errors -Wwrite-strings -fno-merge-constants -fstrict-aliasing -O2 -ogiftrans giftrans.c
giftrans.c: In function 'skipdata':
giftrans.c:293:3: error: ignoring return value of 'fread', declared with attribute warn_unused_result [-Werror=unused-result]
   (void)fread((void *)&size,1,1,src);
   ^
compilation terminated due to -Wfatal-errors.
cc1: all warnings being treated as errors

In Ubuntu, we've applied the attached patch to achieve the following:

  * debian/patches/13_check_file_access_result.diff:
- Patch giftrans.c to get result from fwrite. Fixes FTBFS with warn_unused_result.

We thought you might be interested in doing the same.
Index: giftrans-1.12.2/giftrans.c
===================================================================
--- giftrans-1.12.2.orig/giftrans.c	2008-06-19 12:12:08.152671697 +0100
+++ giftrans-1.12.2/giftrans.c	2008-06-19 12:16:13.844171848 +0100
@@ -270,16 +270,17 @@
 size_t		len;
 {
 	unsigned char	size;
+	size_t nbytes;
 
 	while (len) {
 		size=len<256?len:255;
-		(void)fwrite((void *)&size,1,1,dest);
-		(void)fwrite((void *)data,(size_t)size,1,dest);
+		nbytes = fwrite((void *)&size,1,1,dest);
+		nbytes = fwrite((void *)data,(size_t)size,1,dest);
 		data+=size;
 		len-=size;
 	}
 	size=0;
-	(void)fwrite((void *)&size,1,1,dest);
+	nbytes = fwrite((void *)&size,1,1,dest);
 }
 
 
@@ -287,15 +288,16 @@
 FILE	*src;
 {
 	unsigned char	size,buffer[256];
+	size_t nbytes;
 
 	do {
 		pos=ftell(src);
-		(void)fread((void *)&size,1,1,src);
+		nbytes = fread((void *)&size,1,1,src);
 		if (debug)
 			dump(pos,&size,1);
 		if (debug) {
 			pos=ftell(src);
-			(void)fread((void *)buffer,(size_t)size,1,src);
+			nbytes = fread((void *)buffer,(size_t)size,1,src);
 			dump(pos,buffer,(size_t)size);
 		}
 		else
@@ -309,19 +311,20 @@
 FILE	*dest;
 {
 	unsigned char	size,buffer[256];
+	size_t nbytes;
 
 	pos=ftell(src);
-	(void)fread((void *)&size,1,1,src);
+	nbytes = fread((void *)&size,1,1,src);
 	if (debug)
 		dump(pos,&size,1);
 	if (output)
-		(void)fwrite((void *)&size,1,1,dest);
+		nbytes = fwrite((void *)&size,1,1,dest);
 	pos=ftell(src);
-	(void)fread((void *)buffer,(size_t)size,1,src);
+	nbytes = fread((void *)buffer,(size_t)size,1,src);
 	if (debug)
 		dump(pos,buffer,(size_t)size);
 	if (output)
-		(void)fwrite((void *)buffer,(size_t)size,1,dest);
+		nbytes = fwrite((void *)buffer,(size_t)size,1,dest);
 }
 
 
@@ -329,13 +332,13 @@
 FILE	*src;
 {
 	unsigned char	size,buffer[256];
-	size_t i;
+	size_t i,nbytes;
 
 	pos=ftell(src);
-	(void)fread((void *)&size,1,1,src);
+	nbytes = fread((void *)&size,1,1,src);
 	if (debug)
 		dump(pos,&size,1);
-	(void)fread((void *)buffer,(size_t)size,1,src);
+	nbytes = fread((void *)buffer,(size_t)size,1,src);
 	if (debug)
 		dump(pos+1,buffer,(size_t)size);
 	for (i=0; i<(size_t)size; i++)
@@ -360,20 +363,21 @@
 FILE	*dest;
 {
 	unsigned char	size,buffer[256];
+	size_t nbytes;
 
 	do {
 		pos=ftell(src);
-		(void)fread((void *)&size,1,1,src);
+		nbytes = fread((void *)&size,1,1,src);
 		if (debug)
 			dump(pos,&size,1);
 		if (output)
-			(void)fwrite((void *)&size,1,1,dest);
+			nbytes = fwrite((void *)&size,1,1,dest);
 		pos=ftell(src);
-		(void)fread((void *)buffer,(size_t)size,1,src);
+		nbytes = fread((void *)buffer,(size_t)size,1,src);
 		if (debug)
 			dump(pos,buffer,(size_t)size);
 		if (output)
-			(void)fwrite((void *)buffer,(size_t)size,1,dest);
+			nbytes = fwrite((void *)buffer,(size_t)size,1,dest);
 	} while (!feof(src)&&size>0);
 }
 
@@ -385,11 +389,11 @@
 	unsigned char	buffer[3*256],lsd[7],gct[3*256],gce[5];
 	unsigned int	cnt,cols,size,gct_size=0,gct_delay,gce_present;
 	struct entry	*rgbptr;
-
+	size_t nbytes;
 
 	/* Header */
 	pos=ftell(src);
-	(void)fread((void *)buffer,6,1,src);
+	nbytes = fread((void *)buffer,6,1,src);
 	if (strncmp((char *)buffer,"GIF",3)) {
 		(void)fprintf(stderr,"No GIF file!\n");
 		return(1);
@@ -403,12 +407,12 @@
 	if (output) {
 		if (!strncmp((char *)buffer,"GIF87a",6))
 			buffer[4]='9';
-		(void)fwrite((void *)buffer,6,1,dest);
+		nbytes = fwrite((void *)buffer,6,1,dest);
 	}
 
 	/* Logical Screen Descriptor */
 	pos=ftell(src);
-	(void)fread((void *)lsd,7,1,src);
+	nbytes = fread((void *)lsd,7,1,src);
 	if (verbose) {
 		(void)fprintf(stderr,"Logical Screen Descriptor:\n");
 		(void)fprintf(stderr,"\tLogical Screen Width: %d pixels\n",readword(lsd));
@@ -431,7 +435,7 @@
 	if (lsd[4]&0x80) {
 		gct_size=2<<(lsd[4]&0x7);
 		pos=ftell(src);
-		(void)fread((void *)gct,gct_size,3,src);
+		nbytes = fread((void *)gct,gct_size,3,src);
 		if (go.index==RGB)
 			for(cnt=0;cnt<gct_size&&go.index==RGB;cnt++)
 				if (gct[3*cnt]==go.red&&gct[3*cnt+1]==go.green&&gct[3*cnt+2]==go.blue)
@@ -467,7 +471,7 @@
 			gct_delay=TRUE;
 	}
 	if (output)
-		(void)fwrite((void *)lsd,7,1,dest);
+		nbytes = fwrite((void *)lsd,7,1,dest);
 	if (lsd[4]&0x80) {
 		if (list||verbose) {
 			(void)fprintf(stderr,"Global Color Table:\n");
@@ -483,18 +487,18 @@
 		if (debug)
 			dump(pos,gct,gct_size*3);
 		if (output&&(!gct_delay))
-			(void)fwrite((void *)gct,gct_size,3,dest);
+			nbytes = fwrite((void *)gct,gct_size,3,dest);
 	}
 
 	gce_present=FALSE;
 	do {
 		pos=ftell(src);
-		(void)fread((void *)buffer,1,1,src);
+		nbytes = fread((void *)buffer,1,1,src);
 		switch (buffer[0]) {
 		case 0x2c:	/* Image Descriptor */
 			if (verbose)
 				(void)fprintf(stderr,"Image Descriptor:\n");
-			(void)fread((void *)(buffer+1),9,1,src);
+			nbytes = fread((void *)(buffer+1),9,1,src);
 			/* Write Graphic Control Extension */
 			if (tc.index>=0||gce_present) {
 				if (!gce_present) {
@@ -515,18 +519,18 @@
 					gct[3*tc.index+2]=tn.blue;
 				}
 				if (output&&gct_delay) {
-					(void)fwrite((void *)gct,gct_size,3,dest);
+					nbytes = fwrite((void *)gct,gct_size,3,dest);
 					gct_delay=FALSE;
 				}
 				if (output) {
 					(void)fputs("\041\371\004",dest);
-					(void)fwrite((void *)gce,5,1,dest);
+					nbytes = fwrite((void *)gce,5,1,dest);
 				}
 			}
 			if (output&&gct_delay) {
 				if (verbose)
 					(void)fprintf(stderr,"Warning: Global Color Table has not been modified as no Transparent Color Index has been set\n");
-				(void)fwrite((void *)gct,gct_size,3,dest);
+				nbytes = fwrite((void *)gct,gct_size,3,dest);
 				gct_delay=FALSE;
 			}
 			/* Write Image Descriptor */
@@ -545,12 +549,12 @@
 			if (debug)
 				dump(pos,buffer,10);
 			if (output)
-				(void)fwrite((void *)buffer,10,1,dest);
+				nbytes = fwrite((void *)buffer,10,1,dest);
 			/* Local Color Table */
 			if (buffer[9]&0x80) {
 				size=2<<(buffer[9]&0x7);
 				pos=ftell(src);
-				(void)fread((void *)buffer,size,3,src);
+				nbytes = fread((void *)buffer,size,3,src);
 				if (verbose) {
 					(void)fprintf(stderr,"Local Color Table:\n");
 					for(cnt=0;cnt<size;cnt++)
@@ -564,11 +568,11 @@
 				if (debug)
 					dump(pos,buffer,size*3);
 				if (output)
-					(void)fwrite((void *)buffer,size,3,dest);
+					nbytes = fwrite((void *)buffer,size,3,dest);
 			}
 			/* Table Based Image Data */
 			pos=ftell(src);
-			(void)fread((void *)buffer,1,1,src);
+			nbytes = fread((void *)buffer,1,1,src);
 			if (verbose) {
 				(void)fprintf(stderr,"Table Based Image Data:\n");
 				(void)fprintf(stderr,"\tLZW Minimum Code Size: 0x%02x\n",buffer[0]);
@@ -576,7 +580,7 @@
 			if (debug)
 				dump(pos,buffer,1);
 			if (output)
-				(void)fwrite((void *)buffer,1,1,dest);
+				nbytes = fwrite((void *)buffer,1,1,dest);
 			transdata(src,dest);
 			gce_present=FALSE;
 			break;
@@ -590,16 +594,16 @@
 				writedata(dest,(unsigned char *)comment,strlen(comment));
 			}
 			if (output)
-				(void)fwrite((void *)buffer,1,1,dest);
+				nbytes = fwrite((void *)buffer,1,1,dest);
 			break;
 		case 0x21:	/* Extension */
-			(void)fread((void *)(buffer+1),1,1,src);
+			nbytes = fread((void *)(buffer+1),1,1,src);
 			switch (buffer[1]) {
 			case 0x01:	/* Plain Text Extension */
 				if (output&&gct_delay) {
 					if (verbose)
 						(void)fprintf(stderr,"Warning: Global Color Table has not been modified due to a Plain Text Extension\n");
-					(void)fwrite((void *)gct,gct_size,3,dest);
+					nbytes = fwrite((void *)gct,gct_size,3,dest);
 					gct_delay=FALSE;
 				}
 				if (verbose)
@@ -607,16 +611,16 @@
 				if (debug)
 					dump(pos,buffer,2);
 				if (output)
-					(void)fwrite((void *)buffer,2,1,dest);
+					nbytes = fwrite((void *)buffer,2,1,dest);
 				transblock(src,dest);
 				transdata(src,dest);
 				break;
 			case 0xf9:	/* Graphic Control Extension */
 				if (verbose)
 					(void)fprintf(stderr,"Graphic Control Extension:\n");
-				(void)fread((void *)(buffer+2),1,1,src);
+				nbytes = fread((void *)(buffer+2),1,1,src);
 				size=buffer[2];
-				(void)fread((void *)gce,size,1,src);
+				nbytes = fread((void *)gce,size,1,src);
 				if (verbose) {
 					(void)fprintf(stderr,"\tDisposal Method: %d ",gce[0]&0x1c>>2);
 					switch (gce[0]&0x1c>>2) {
@@ -646,7 +650,7 @@
 					dump(pos+3,gce,size);
 				}
 				pos=ftell(src);
-				(void)fread((void *)buffer,1,1,src);
+				nbytes = fread((void *)buffer,1,1,src);
 				if (debug)
 					dump(pos,buffer,1);
 				gce_present=TRUE;
@@ -665,11 +669,11 @@
 					if (output&&gct_delay) {
 						if (verbose)
 							(void)fprintf(stderr,"Warning: Global Color Table has not been modified due to a Comment Extension\n");
-						(void)fwrite((void *)gct,gct_size,3,dest);
+						nbytes = fwrite((void *)gct,gct_size,3,dest);
 						gct_delay=FALSE;
 					}
 					if (output)
-						(void)fwrite((void *)buffer,2,1,dest);
+						nbytes = fwrite((void *)buffer,2,1,dest);
 					transdata(src,dest);
 				}
 				break;
@@ -677,7 +681,7 @@
 				if (output&&gct_delay) {
 					if (verbose)
 						(void)fprintf(stderr,"Warning: Global Color Table has not been modified due to a Application Extension\n");
-					(void)fwrite((void *)gct,gct_size,3,dest);
+					nbytes = fwrite((void *)gct,gct_size,3,dest);
 					gct_delay=FALSE;
 				}
 				if (verbose)
@@ -685,7 +689,7 @@
 				if (debug)
 					dump(pos,buffer,2);
 				if (output)
-					(void)fwrite((void *)buffer,2,1,dest);
+					nbytes = fwrite((void *)buffer,2,1,dest);
 				transblock(src,dest);
 				transdata(src,dest);
 				break;
@@ -693,7 +697,7 @@
 				if (output&&gct_delay) {
 					if (verbose)
 						(void)fprintf(stderr,"Warning: Global Color Table has not been modified due to an unknown Extension\n");
-					(void)fwrite((void *)gct,gct_size,3,dest);
+					nbytes = fwrite((void *)gct,gct_size,3,dest);
 					gct_delay=FALSE;
 				}
 				if (verbose)
@@ -701,7 +705,7 @@
 				if (debug)
 					dump(pos,buffer,2);
 				if (output)
-					(void)fwrite((void *)buffer,2,1,dest);
+					nbytes = fwrite((void *)buffer,2,1,dest);
 				transblock(src,dest);
 				transdata(src,dest);
 				break;

Reply via email to