--- ray/src/common/lamps.c 1990/12/14 12:29:41 1.2 +++ ray/src/common/lamps.c 1992/11/10 10:29:22 2.2 @@ -114,7 +114,7 @@ char *file; lastp = lp; } fclose(fp); - return(1); + return(lastp != NULL); memerr: fputs("Out of memory in loadlamps\n", stderr); return(-1); @@ -129,7 +129,7 @@ freelamps() /* free our lamps list */ { register LAMP *lp1, *lp2; - for (lp1 = lamps; lp1 != NULL; lp1 = lp1->next) { + for (lp1 = lamps; lp1 != NULL; lp1 = lp2) { free(lp1->pattern); if (lp1->color != NULL) { for (lp2 = lp1->next; lp2 != NULL; lp2 = lp2->next) @@ -137,6 +137,7 @@ freelamps() /* free our lamps list */ lp2->color = NULL; free((char *)lp1->color); } + lp2 = lp1->next; free((char *)lp1); } lamps = NULL;