Canon の ScanGear2 が落ちる
プリンタを新しくしたのだけれど、ドライバ付属のスキャンソフトである ScanGear2 が落ちる。
Ubuntu 12.04 で、最新版ではないのもいけないのだけれど。
ソースコードを見て、一箇所直したら動いたので、patch だけメモ。
--- canon_mfp_tools.c_old 2016-01-30 00:34:39.896069000 +0900 +++ canon_mfp_tools.c 2016-01-30 00:35:15.664070144 +0900 @@ -340,7 +340,7 @@ goto onErr; } /* search canon mfp */ - numdev = libusb_get_device_list(NULL, &g_devlist); + numdev = libusb_get_device_list(g_context, &g_devlist); if((int)numdev == 0) { err = CN_USB_WRITE_ERROR; goto onErr;
こんな適当な修正で直るものなんだな。
追記
上の修正だけだと、スキャンの時に落ちる。
もう一箇所修正が必要:
--- scanmain.c_old 2016-01-30 13:54:12.583522651 +0900 +++ scanmain.c 2016-01-30 13:54:17.171522588 +0900 @@ -298,7 +298,7 @@ int i; int ret = -1; int status; - char *buf; + char *buf = NULL; int errCode; int readBytes = 0; int result = CIJSC_SCANMAIN_SCAN_FINISHED;
ポインタはちゃんと初期化しましょう。
これ多分 gcc のバージョンによっては問題にならないんだろうけども。
それはそうと、ソースを見てみると、goto のオンパレードで、少なからず不安な気持ちにさせられた。