I've been able to finish the analysis of the bug, this is the summary: - nmap includes an old version of lpeg (0.12 ~Trusty/oldoldstable) in all releases (all files merged in lpeg.c) - Debian introduced a patch that links nmap's build against an external lua-lpeg lib because lpeg is properly packaged (a hygiene measure according to Debian's maintainer) - Upstream introduced a patch, available in B+, that fixed a FTBFS regarding lpeg (undefined reference for luaopen_lpeg()) - The version of lua-lpeg in X/B/E has a recursion error - When both the upstream commit and the external linking patch are available, local lpeg is used
This results in: - X fails because it uses lua-lpeg (no upstream commit in the build) - B works because it uses local lpeg (upstream commit available) - E is a special case in my reproducer: the debian patch removes #include "lpeg.c" so it uses the external lua-lpeg, but works because the scanned service has a fingerprint and avoids the crash. Removing the fingerprint from /usr/share/nmap/nmap-service-probes makes it crash as expected The best way to fix this bug will be to fix the recursion error in lua- lpeg so nmap would work regardless of the version of lua-lpeg it uses. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1580385 Title: /usr/bin/nmap:11:hascaptures:hascaptures:hascaptures:hascaptures:hascaptures To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/lua-lpeg/+bug/1580385/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs