音频相关程序在读取 urandom 后莫名其妙地出现分段错误

音频相关程序在读取 urandom 后莫名其妙地出现分段错误

几个月来,我一直运行 debian 作为我的主要驱动程序操作系统,但我刚刚开始发现一些音频相关的应用程序出现了一个奇怪的错误。

系统调用跟踪揭示了这一点。

  ...
open("/dev/urandom", O_RDONLY|O_LARGEFILE) = 3
  ...
read(3, "~e\f9\224S\0160q\312Iz\341c9\306\300j\303\311\372)\331\301\16\304K\32\235\347\2659", 32) = 32
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x10} ---

(完整追踪可用这里

其他几个程序也出现了同样的问题,包括 vlc、rhythmbox 和 idjc。直到几天前,一切都运行正常,有谁知道这里发生了什么吗?

编辑:到目前为止,所有执行此操作的程序都与播放音频有关,但事实证明它wget也在执行此操作。我还应该补充一点,我尝试用一dd​​行复制该错误,但无法dd崩溃。

read有趣的是,我比较了两个跟踪日志,除了和返回的数据外,它们的最后 9 行是相同的getrusage

我几乎确定这是 GNUTLS 库的问题,但尚未找到解决办法

答案1

我已经确认问题出在 GNUTLS 上。我将一些软件包更新到 debian 的测试分支,问题就消失了。

相关内容