Here's the exact workaround, in case anyone runs into that crash again. I dare the author of widl to run it under valgrind :-)
diff -Naur wine.orig/tools/widl/parser.l wine/tools/widl/parser.l --- wine.orig/tools/widl/parser.l Mon Oct 4 19:14:54 2004 +++ wine/tools/widl/parser.l Wed Nov 10 00:28:37 2004 @@ -123,7 +123,7 @@ yyerror("Malformed '#...' line-directive; missing terminating ""); *cptr = '\0'; line_number = lineno - 1; /* We didn't read the newline */ - free( input_name ); + //free( input_name ); input_name = xstrdup(fname); } " yy_push_state(QUOTE); cbufidx = 0;