Simple Scan、XSane 和 scanimage 中的分段错误

Simple Scan、XSane 和 scanimage 中的分段错误

我已经在 Ubuntu 18.04.5 LTS 上使用 Simple Scan 几年了,但今天我无法再启动它了。它打开窗口并立即崩溃。当我尝试使用 CLI 时,我收到以下消息:

bugchk_free(ptr=(nil))@modelinf.c(464)
Abandon (core dumped)

我尝试使用 Xsane 或 scanimage 代替,但我遇到了完全相同的问题。 Skanlite 似乎可以工作(但它无法识别我的扫描仪)。

这是我的 libsane 软件包(来自dpkg -l | grep sane):

ii  libsane-common                             1.0.27-1~experimental3ubuntu2.2                  all          API library for scanners -- documentation and support files
ii  libsane-hpaio:amd64                        3.17.10+repack0-5                                amd64        HP SANE backend for multi-function peripherals
ii  libsane1:amd64                             1.0.27-1~experimental3ubuntu2.2                  amd64        API library for scanners
ii  sane-utils                                 1.0.30-bionic1                                   amd64        API library for scanners -- utilities

我尝试从rolfbesnch/sane-releasePPA 升级这些,但这似乎并不能解决我的问题。我应该尝试使用rolfbensch/sane-gitPPA 吗?

谢谢,

答案1

我修复了我的“Pantum M6500”的段错误scanimage -L

$ scanimage -L
Segmentation fault (core dumped)

通过删除tcp ...条目/etc/sane.d/pantum6500.conf

tcp M6500 9200

我发现通过trace scanimage -L扫描图像读取/etc/sane.d/pantum6500.conf并尝试绑定 TCP 端口,然后发生了段错误。

答案2

一些更新似乎已经解决了这个问题。

答案3

从 Ubuntu 18.04 升级到 Ubuntu 20.04 后,我的 HP4200 USB 扫描仪在 Xsane 中遇到分段错误问题。

我发现很多谷歌建议都无济于事。我配置并编译了 HP4200 的后端,但它仍然崩溃。

我在源代码中启用了调试消息,发现调试消息告诉我它总是在同一个地方崩溃

do_fine_calibration文件中调用的子例程hp4200.c。在该子例程中memset被调用,看来这就是发生崩溃的地方。

如果memset使用空指针调用,它会尝试访问不存在的内存。我试图找出 Ubuntu 20.04 在内存管理方面是否做了一些不同的事情,但一无所获。

无论如何,这段代码似乎正在设置一个名为 registro 的大数组,但该数组的指针似乎不存在!

我不是内存管理专家,但经过一番研究后,我决定更改 registro 声明,在声明时将其设置为 0 (关于第 1377 行 -int registro[30][5460 * 3] = {0};我的更改)

然后删除将 registro 数组 mem 设置为 0 的代码部分(第 1496 行 - 大约 1505 行)。

重新启动并启动 scanimage 进行扫描后./configurationmake sudo make install你瞧,电机起飞并再次开始扫描!

相关内容