--- ray/src/gen/xform.c 2009/07/26 18:34:59 2.41 +++ ray/src/gen/xform.c 2009/07/26 18:36:17 2.42 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: xform.c,v 2.41 2009/07/26 18:34:59 greg Exp $"; +static const char RCSid[] = "$Id: xform.c,v 2.42 2009/07/26 18:36:17 greg Exp $"; #endif /* * xform.c - program to transform object files. @@ -258,11 +258,11 @@ doargf( /* take argument list from file */ for (i = fi+2; i < ac; i++) avp[newac++] = av[i]; avp[newac] = NULL; - newid = oldid = NULL; + newid = newidbuf; + oldid = NULL; for (i = 2; i < newac; i++) if (!strcmp(avp[i-1], "-n")) { oldid = avp[i]; - newid = newidbuf; if (strlen(oldid)+32 > sizeof(newidbuf)) { newid = (char *)malloc(strlen(oldid)+32); if (newid == NULL) @@ -274,7 +274,7 @@ doargf( /* take argument list from file */ if (oldid == NULL) { newav[0] = av[0]; newav[1] = "-n"; - newav[2] = newid = newidbuf; + newav[2] = newid; avp = newav; newac += 2; } @@ -283,7 +283,7 @@ doargf( /* take argument list from file */ else sprintf(newid, "%s.%d", oldid, k); err |= main(newac, avp); - if (newid != NULL && newid != newidbuf) + if (newid != newidbuf) free((void *)newid); k++; }