Package: libunwind8
Version: 1.2.1-9
Severity: normal

Dear Maintainer,

Consider the following code:

```
#include <iostream>

int main() {
  try {
    throw std::runtime_error("Exceptions are being handled normally.");
  } catch (std::runtime_error &e) {
    std::cout << e.what() << "\n";
  }
}
```

When not linked with libunwind, it operates perfectly normal:

```
$ g++ -o wtf wtf.cpp && ./wtf
Exceptions are being handled normally.
```

But if we link it against libunwind, catch stops working:

```
$ g++ -lunwind -o wtf wtf.cpp && ./wtf
terminate called after throwing an instance of 'std::runtime_error'
terminate called recursively
Aborted (core dumped)
```

The problem is not present in upstream libunwind, and there are
multiple new upstream versions available, even though Debian
only has libunwind 1.2.1 even in unstable.

It's possible that there are security implications to this.

-- System Information:
Debian Release: 10.4
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: arm64 (aarch64)

Kernel: Linux 5.4.51-cloudflare-2020.7.13 (SMP w/32 CPU cores)
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE=C (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: unable to detect

Versions of packages libunwind8 depends on:
ii  libc6     2.28-10
ii  libgcc1   1:8.3.0-6
ii  liblzma5  5.2.4-1

libunwind8 recommends no packages.

libunwind8 suggests no packages.

-- no debconf information

Reply via email to