Obvious memory leak under Win32


From the function "process_cla" in slib.c (comments added):
<pre> if (!siod_lib_set) { #ifdef WIN32 if (argc > 0) /* strdup() uses malloc(), which means that * siod_lib, allocated below, must be freed: */ {siod_lib = strdup(argv[0]); siod_lib_set = 1; if ((ptr = strrchr(siod_lib,'\\'))) ptr[1] = 0;} #endif if (getenv("SIOD_LIB")) /* The buffer siod_lib is being assigned a new value (below). * Under Win32, its old value (which still needs to be freed) * is lost. */ {siod_lib = getenv("SIOD_LIB"); siod_lib_set = 1;}} #endif </pre>  
BTW, I ran across this while trying to figure out why my linear-time Scheme script runs in exponential time under GIMP's Script-Fu.