On Wednesday January 25 2017 23:53:29 Clemens Lang wrote: Hi,
> Pextlib is an extension for the Tcl interpreter. Yes, InstallCmd() is > called by Tcl, but the way this works is that the Pextlib library is > loaded into Tcl and registers the xinstall command, which causes Tcl to > invoke InstallCmd() whenever the interpreter hits an xinstall. Well yes, of course, how else would it work? > If you compile a copy of Pextlib with address sanitizer, you'll > immediately see memory corruption. I presume it works through instrumenting the code being compiled, so > > Apparently the issue is not in Tcl or Pextlib, but in > > getmode()/setmode(): if and when things go wrong the 775 (sic) mode > > I'm requesting in the Portfile is translated to a mask of 0255. > > Have you considered octal vs. decimal and potentially different parsing? Yes and what do you mean with "potentially different parsing"? > Did you try 0755? No, and I probably should use that mask anyway instead of 0775. It's a thought for if and when the issue comes back. BTW, the resulting mask was 0225, not 255. I did manage to catch the issue with a debugger attached and could thus fix the incorrect mask before it was actually used. And the incorrect mask wasn't always 0225, I saw at least 2 other values. Exactly as you'd expect for something that's not reproducible systematically. It's also thanks to that debugging session that I finally noticed that Pextlib was using its own setmode/getmode copies. R.
