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 のオンパレードで、少なからず不安な気持ちにさせられた。