$OpenBSD: patch-Imlib_utils_c,v 1.2 2003/09/01 16:53:00 avsm Exp $ --- Imlib/utils.c.orig 2002-03-22 09:43:04.000000000 -0500 +++ Imlib/utils.c 2003-08-28 13:19:43.000000000 -0400 @@ -801,6 +801,7 @@ Imlib_crop_and_clone_image(ImlibData * i unsigned char *ptr1, *ptr2; ImlibImage *im2; char *s; + size_t s_size; if (!im) return NULL; @@ -872,10 +873,11 @@ Imlib_crop_and_clone_image(ImlibData * i im2->rgb_width = w; im2->rgb_height = h; im2->alpha_data = NULL; - s = malloc(strlen(im->filename) + 320); + s_size = strlen(im->filename + 320); + s = malloc(s_size); if (s) { - snprintf(s, sizeof(s), "%s_%x_%x", im->filename, (int)time(NULL), (int)rand()); + snprintf(s, s_size, "%s_%x_%x", im->filename, (int)time(NULL), (int)rand()); im2->filename = malloc(strlen(s) + 1); if (im2->filename) strcpy(im2->filename, s); @@ -1211,6 +1213,7 @@ Imlib_clone_image(ImlibData * id, ImlibI { ImlibImage *im2; char *s; + size_t s_size; if (!im) return NULL; @@ -1239,10 +1242,11 @@ Imlib_clone_image(ImlibData * id, ImlibI } else im2->alpha_data = NULL; - s = malloc(strlen(im->filename) + 320); + s_size = strlen(im->filename) + 320; + s = malloc(s_size); if (s) { - snprintf(s, sizeof(s), "%s_%x_%x", im->filename, (int)time(NULL), (int)rand()); + snprintf(s, s_size, "%s_%x_%x", im->filename, (int)time(NULL), (int)rand()); im2->filename = malloc(strlen(s) + 1); if (im2->filename) strcpy(im2->filename, s); @@ -1285,6 +1289,7 @@ Imlib_clone_scaled_image(ImlibData * id, { ImlibImage *im2; char *s; + size_t s_size; if ((!im) || (w <= 0) || (h <= 0)) return NULL; @@ -1417,10 +1422,11 @@ Imlib_clone_scaled_image(ImlibData * id, } else im2->alpha_data = NULL; - s = malloc(strlen(im->filename) + 320); + s_size = strlen(im->filename) + 320; + s = malloc(s_size); if (s) { - snprintf(s, sizeof(s), "%s_%x_%x_%x_%x", im->filename, (int)time(NULL), w, h, (int)rand()); + snprintf(s, s_size, "%s_%x_%x_%x_%x", im->filename, (int)time(NULL), w, h, (int)rand()); im2->filename = malloc(strlen(s) + 1); if (im2->filename) strcpy(im2->filename, s); @@ -1596,7 +1602,7 @@ Imlib_create_image_from_xpm_data(ImlibDa { if (line[k] != ' ') { - sscanf(&line[k], "%65536s", s); + sscanf(&line[k], "%255s", s); k += strlen(s); if (!strcmp(s, "c")) iscolor = 1;