Source: luabind
Version: 0.9.1+git20150823+dfsg-3
Severity: important
Tags: patch upstream
Dear Maintainer,
the upstream snapshot (76d4061) fixes some instances of std::terminate being
called when luabind::error is thrown
in a destructor by utilizing a macro that evaluates to noexcept(false).
Unfortunately, it seems one of those
instances has not been fixed.
In luabind/detail/call_member.hpp:233 LUABIND_MAY_THROW needs to be
attached to ~proxy_member_void_caller() to fix this bug.
I have also reported this issue to the upstream source:
https://github.com/ValyriaTear/luabind/pull/2
For your convenience I will attach a patch.
Kind regards,
Andreas Grob
-- System Information:
Debian Release: bullseye/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 5.5.0-2-amd64 (SMP w/6 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8),
LANGUAGE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Author: Andreas Grob
Description: Prevent std::terminate in ~proxy_member_void_caller()
If luabind::error is thrown in ~proxy_member_void_caller() std::terminate will
be called, unless we set noexcept(false).
This should complement the fix made in upstream commit 94fedc6.
I have also suggested this fix in upstream at
https://github.com/ValyriaTear/luabind/pull/2
Index: luabind-0.9.1+git20150823+dfsg/luabind/detail/call_member.hpp
===
--- luabind-0.9.1+git20150823+dfsg.orig/luabind/detail/call_member.hpp
+++ luabind-0.9.1+git20150823+dfsg/luabind/detail/call_member.hpp
@@ -230,7 +230,7 @@ namespace luabind
rhs.m_called = true;
}
-~proxy_member_void_caller()
+~proxy_member_void_caller() LUABIND_MAY_THROW
{
if (m_called) return;