Bug#839101: cowdancer: Keep open() async-signal-safe
Jack Bates
wdz7eo at nottheoilrig.com
Wed Sep 28 21:52:57 UTC 2016
Package: cowdancer
Version: 0.81
Severity: normal
Dear Maintainer,
open() is supposed to be async-signal-safe [1], however cowdancer's
open() calls dlsym() [2] which calls calloc() [3] which isn't AS-safe.
This caused me some grief [4], in combination with TCMalloc and
Chromium.
As I see it, to keep open() AS-safe, cowdancer can't call dlsym() from
open() (if possible). That means either:
A) Call dlsym() early, before anything calls open(). Not possible
because even if you managed to call dlsym() before anything else,
dlsym() itself might call open() before it was done initializing :-(
B) Avoid dlsym() altogether. What are the options in this case?
1) Use sys_open() instead of dlsym(RTLD_NEXT, "open)
2) ???
[1] http://man7.org/linux/man-pages/man7/signal.7.html
"Async-signal-safe functions"
[2] https://anonscm.debian.org/git/pbuilder/cowdancer.git/tree/cowdancer.c#n182
[3] https://sourceware.org/git/?p=glibc.git;a=blob;f=dlfcn/dlerror.c;h=41b2bd6bf29be5f61affc5e750775ab2f64ee4b0;hb=HEAD#l141
[4] https://groups.google.com/a/chromium.org/d/msg/gn-dev/uYMNbQp9FUg/N9b8-SfEGAAJ
-- System Information:
Debian Release: stretch/sid
APT prefers testing-debug
APT policy: (500, 'testing-debug'), (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 4.6.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages cowdancer depends on:
ii libc6 2.23-5
ii libncurses5 6.0+20160625-1
ii libtinfo5 6.0+20160625-1
cowdancer recommends no packages.
cowdancer suggests no packages.
-- no debconf information
More information about the Pbuilder-maint
mailing list