Ubuntu

Simple Scan、XSane 和 scanimage 中的分段錯誤

  • June 6, 2021

幾年來,我一直在 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 嗎?

謝謝,

一些更新似乎已經解決了這個問題。

從 Ubuntu 18.04 升級到 Ubuntu 20.04 後,我的 HP4200 USB 掃描器在 Xsane 中出現分段錯誤問題。

我發現許多Google建議無濟於事。我為 HP4200 配置和編譯了後端,但它仍然崩潰。

我在原始碼中啟用了調試消息,發現調試消息告訴我它總是在同一個地方崩潰

文件中呼叫的do_fine_calibration子程序hp4200.c。在那個子程序memset中被呼叫,看起來那是發生崩潰的地方。

如果memset使用空指針呼叫它,它會嘗試訪問不存在的記憶體。我試圖找出 Ubuntu 20.04 是否在記憶體管理方面做了一些不同的事情,但什麼也沒找到。

無論如何,這段程式碼似乎正在設置一個名為 registro 的大型數組,其中似乎不存在指針!

我不是記憶體管理專家,但經過一些研究後,我決定更改註冊聲明,在聲明時將其設置為 0(關於第 1377 行 -int registro[30][5460 * 3] = {0};我的更改)

然後消除將系統資料庫數組設置為 0 的程式碼部分(第 1496 行 - 大約 1505 行)。

重新啟動後./configurationmake sudo make install啟動 scanimage 進行掃描,你瞧,馬達起飛並再次開始掃描!

引用自:https://unix.stackexchange.com/questions/604779