diff options
Diffstat (limited to 'progs/redbook/histogram.c')
-rw-r--r-- | progs/redbook/histogram.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/progs/redbook/histogram.c b/progs/redbook/histogram.c index de1e59edea6..12b0e315ca1 100644 --- a/progs/redbook/histogram.c +++ b/progs/redbook/histogram.c @@ -83,6 +83,7 @@ readImage( const char* filename, GLsizei* width, GLsizei *height ) { int n; GLubyte* pixels; + size_t num_read; FILE* infile = fopen( filename, "rb" ); @@ -91,8 +92,10 @@ readImage( const char* filename, GLsizei* width, GLsizei *height ) exit(1); } - fread( width, sizeof( GLsizei ), 1, infile ); - fread( height, sizeof( GLsizei ), 1, infile ); + num_read = fread( width, sizeof( GLsizei ), 1, infile ); + assert(num_read == 1); + num_read = fread( height, sizeof( GLsizei ), 1, infile ); + assert(num_read == 1); *width = bswap(*width); *height = bswap(*height); @@ -102,10 +105,12 @@ readImage( const char* filename, GLsizei* width, GLsizei *height ) pixels = (GLubyte *) malloc( n * sizeof( GLubyte )); if ( !pixels ) { fprintf( stderr, "Unable to malloc() bytes for pixels\n" ); + fclose( infile ); return NULL; } - fread( pixels, sizeof( GLubyte ), n, infile ); + num_read = fread( pixels, sizeof( GLubyte ), n, infile ); + assert(num_read == n); fclose( infile ); |