Fix major memory leak in xpm loader.

SVN revision: 26713
This commit is contained in:
Kim Woelders 2006-10-20 18:03:15 +00:00
parent 2b3acfd6be
commit 32bb37dfbf
1 changed files with 26 additions and 26 deletions

View File

@ -246,6 +246,32 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity,
per_inc = 100.0 / (((float)w) * h);
if (im->loader || immediate_load || progress)
{
im->data =
(DATA32 *) malloc(sizeof(DATA32) * im->w *
im->h);
if (!im->data)
{
free(cmap);
free(line);
fclose(f);
xpm_parse_done();
return 0;
}
ptr = im->data;
end = ptr + (sizeof(DATA32) * w * h);
pixels = w * h;
}
else
{
free(cmap);
free(line);
fclose(f);
xpm_parse_done();
return 1;
}
j = 0;
context++;
}
@ -363,32 +389,6 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity,
{
UNSET_FLAG(im->flags, F_HAS_ALPHA);
}
if (im->loader || immediate_load || progress)
{
im->data =
(DATA32 *) malloc(sizeof(DATA32) * im->w *
im->h);
if (!im->data)
{
free(cmap);
free(line);
fclose(f);
xpm_parse_done();
return 0;
}
ptr = im->data;
end = ptr + (sizeof(DATA32) * w * h);
pixels = w * h;
}
else
{
free(cmap);
free(line);
fclose(f);
xpm_parse_done();
return 1;
}
}
else
{