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;