1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 12:28:22 +01:00

fix for 0 sized images

This commit is contained in:
kojima
2002-10-25 03:43:57 +00:00
parent 55efa1f268
commit 0f0afc48ab
4 changed files with 16 additions and 2 deletions

View File

@@ -133,6 +133,11 @@ RLoadJPEG(RContext *context, char *file_name, int index)
jpeg_read_header(&cinfo, TRUE);
if (cinfo.image_width < 1 || cinfo.image_height < 1) {
RErrorCode = RERR_BADIMAGEFILE;
goto bye;
}
bptr = buffer[0] = (JSAMPROW)malloc(cinfo.image_width*cinfo.num_components);
if (!buffer[0]) {
RErrorCode = RERR_NOMEMORY;

View File

@@ -86,7 +86,7 @@ RGetImageFromXPMData(RContext *context, char **data)
int w, h, ccount, csize;
if (sscanf(data[line++], "%i %i %i %i", &w, &h, &ccount, &csize)!=4
|| w <= 0 || h <= 0 || ccount <= 0 || csize <= 0)
|| w <= 1 || h <= 1 || ccount <= 0 || csize <= 0)
goto bad_format;
if (csize!=1 && csize!=2)

View File

@@ -112,6 +112,15 @@ RLoadPNG(RContext *context, char *file, int index)
png_get_IHDR(png, pinfo, &width, &height, &depth, &color_type,
&junk, &junk, &junk);
/* sanity check */
if (width < 1 || height < 1) {
fclose(f);
png_destroy_read_struct(&png, &pinfo, &einfo);
RErrorCode = RERR_BADIMAGEFILE;
return NULL;
}
/* check for an alpha channel */
if (png_get_valid(png, pinfo, PNG_INFO_tRNS))

View File

@@ -154,7 +154,7 @@ RLoadPPM(RContext *context, char *file_name, int index)
}
/* get size */
if (sscanf(buffer, "%i %i", &w, &h)!=2)
if (sscanf(buffer, "%i %i", &w, &h)!=2 || w < 1 || h < 1)
goto bad_file;