check return value of fread/write funcs

This fixes warnings with newer compilers/distros that enable warning
flags by default:
loader_zlib.c: In function 'uncompress_file':
loader_zlib.c:33:17: warning: ignoring return value of 'write',
	declared with attribute warn_unused_result [-Wunused-result]
            write(dest, outbuf, bytes);
                 ^
This commit is contained in:
Mike Frysinger 2014-01-18 14:20:06 -05:00
parent 5dde234b2d
commit 560a58e617
7 changed files with 50 additions and 12 deletions

View File

@ -71,12 +71,22 @@ load(ImlibImage * im, ImlibProgressFunction progress,
{
int x;
fread(ptr, im->w, 4, f);
if (fread(ptr, im->w, 4, f) != 4)
{
free(ptr);
fclose(f);
return 0;
}
for (x = 0; x < im->w; x++)
SWAP32(ptr[x]);
}
#else
fread(ptr, im->w, 4, f);
if (fread(ptr, im->w, 4, f) != 4)
{
free(ptr);
fclose(f);
return 0;
}
#endif
ptr += im->w;
if (progress)

View File

@ -208,14 +208,22 @@ load(ImlibImage * im, ImlibProgressFunction progress,
if (ncols > 256)
ncols = 256;
for (i = 0; i < ncols; i++)
fread(&rgbQuads[i], 3, 1, f);
if (fread(&rgbQuads[i], 3, 1, f) != 1)
{
fclose(f);
return 0;
}
}
else
{
ncols /= 4;
if (ncols > 256)
ncols = 256;
fread(rgbQuads, 4, ncols, f);
if (fread(rgbQuads, 4, ncols, f) != ncols)
{
fclose(f);
return 0;
}
}
}
else if (bitcount == 16 || bitcount == 32)
@ -293,12 +301,18 @@ load(ImlibImage * im, ImlibProgressFunction progress,
im->data = malloc(w * h * sizeof(DATA32));
if (!im->data)
{
fclose(f);
free(buffer);
fclose(f);
return 0;
}
fread(buffer, imgsize, 1, f);
if (fread(buffer, imgsize, 1, f) != 1)
{
free(im->data);
free(buffer);
fclose(f);
return 0;
}
fclose(f);
buffer_ptr = buffer;
buffer_end = buffer + imgsize;

View File

@ -28,7 +28,8 @@ uncompress_file(FILE * fp, int dest)
bytes = BZ2_bzRead(&error, bf, &outbuf, OUTBUF_SIZE);
if (error == BZ_OK || error == BZ_STREAM_END)
write(dest, outbuf, bytes);
if (write(dest, outbuf, bytes) != bytes)
break;
if (error == BZ_STREAM_END)
break;

View File

@ -37,7 +37,11 @@ load(ImlibImage * im, ImlibProgressFunction progress,
unsigned char buf[PNG_BYTES_TO_CHECK];
/* if we haven't read the header before, set the header data */
fread(buf, 1, PNG_BYTES_TO_CHECK, f);
if (fread(buf, 1, PNG_BYTES_TO_CHECK, f) != PNG_BYTES_TO_CHECK)
{
fclose(f);
return 0;
}
if (png_sig_cmp(buf, 0, PNG_BYTES_TO_CHECK))
{
fclose(f);

View File

@ -278,7 +278,11 @@ load(ImlibImage * im, ImlibProgressFunction progress,
if (!file)
return 0;
fread(&magic_number, sizeof(uint16), 1, file);
if (fread(&magic_number, sizeof(uint16), 1, file) != 1)
{
fclose(file);
return 0;
}
/* Apparently rewind(f) isn't sufficient */
fseek(file, (long)0, SEEK_SET);

View File

@ -125,7 +125,12 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity,
xpm_parse_done();
return 0;
}
fread(s, 1, 9, f);
if (fread(s, 1, 9, f) != 9)
{
fclose(f);
xpm_parse_done();
return 0;
}
rewind(f);
s[9] = 0;
if (strcmp("/* XPM */", s))

View File

@ -29,8 +29,8 @@ uncompress_file(int src, int dest)
ret = 0;
break;
}
else
write(dest, outbuf, bytes);
else if (write(dest, outbuf, bytes) != bytes)
break;
}
gzclose(gf);