On 6/30/2013 7:50 AM, Helmut Karlowski wrote:
Ken Brown, 30.06.2013 04:34:00:
If you want to try debugging this with gdb, the texlive-debuginfo
package contains the files you need.
Thanks! Found the bug:
In
texk/web2c/luatexdir/lua/loslibext.c:649
In
632 static void find_env(lua_State * L)
633 {
634 char *envitem, *envitem_orig;
(gdb)
635 char *envkey;
636 char **envpointer;
637 envpointer = environ;
638 lua_getglobal(L, "os");
639 if (envpointer != NULL && lua_istable(L, -1)) {
640 luaL_checkstack(L, 2, "out of stack space");
641 lua_pushstring(L, "env");
642 lua_newtable(L);
643 while (*envpointer) {
644 /* TODO: perhaps a memory leak here */
(gdb)
645 luaL_checkstack(L, 2, "out of stack space");
646 envitem = xstrdup(*envpointer);
647 envitem_orig = envitem;
648 envkey = envitem;
649 while (*envitem != '=') {
650 envitem++;
651 }
652 *envitem = 0;
653 envitem++;
654 lua_pushstring(L, envkey);
(gdb)
655 lua_pushstring(L, envitem);
656 lua_rawset(L, -3);
657 envpointer++;
658 free(envitem_orig);
659 }
660 lua_rawset(L, -3);
661 }
662 lua_pop(L, 1);
663 }
It crashes in line 649, because my shell put an item without '=' in the
environment, and there is no 0-check in find_env(), which appears to be
a good thing. Fixed.
I'm glad you found it. Does the malformed environment string also
explain the other strange errors you were seeing?
Ken
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple