262 |
|
returnErr(TM_E_BADFILE); |
263 |
|
} |
264 |
|
/* allocate arrays */ |
265 |
+ |
scan = (COLR *)malloc(sizeof(COLR) * *xp); |
266 |
|
if (flags & TM_F_BW) |
267 |
|
rp = (BYTE *)malloc(sizeof(BYTE) * *xp * *yp); |
268 |
|
else |
269 |
|
rp = (BYTE *)malloc(3*sizeof(BYTE) * *xp * *yp); |
269 |
– |
scan = (COLR *)malloc(sizeof(COLR) * *xp); |
270 |
|
if ((*psp = rp) == NULL | scan == NULL) { |
271 |
|
pclose(infp); |
272 |
|
returnErr(TM_E_NOMEM); |
275 |
|
for (y = 0; y < *yp; y++) { |
276 |
|
if (freadcolrs(scan, *xp, infp) < 0) { |
277 |
|
pclose(infp); |
278 |
+ |
free((char *)scan); |
279 |
+ |
free((char *)*psp); |
280 |
+ |
*psp = NULL; |
281 |
|
returnErr(TM_E_BADFILE); |
282 |
|
} |
283 |
|
colrs_gambs(scan, *xp); |
338 |
|
/* allocate space for result */ |
339 |
|
if (flags & TM_F_BW) { |
340 |
|
*psp = (BYTE *)malloc(sizeof(BYTE) * *xp * *yp); |
341 |
< |
if (*psp == NULL) |
341 |
> |
if (*psp == NULL) { |
342 |
> |
free((char *)lp); |
343 |
> |
tmDone(NULL); |
344 |
|
returnErr(TM_E_NOMEM); |
345 |
+ |
} |
346 |
|
cp = TM_NOCHROM; |
347 |
|
} else |
348 |
|
*psp = cp; |