firefoxのAdobeReaderがC:\nppdf32Log\debuglog.txtというファイル名を作る問題

Portageから入れたfirefoxのAdobeReaderプラグインが,firefoxを起動した時のカレントディレクトリに"C:\\nppdf32Log\\debuglog.txt"というファイルを作る問題について.

この現象だいぶ前からある気がするんですが,前に対処したのがFirefoxのアップデートと共に復活したので再度対処したメモ.一向に治らないのはバイナリ配布のプロプライエタリだから.たぶん.

ファイル名でググれば同じ症状は腐るほど出てくるので,この方みたいにブラウザ内でPDF開けなくていいよって方は丸っと消しちゃってもいいんですが,別の方法もあります.

ソースがないならバイナリを書き換えればええやん.ということで,まずは犯人のバイナリを探します.

$ ps ax | grep firefox
28928 pts/2    SNl    1:00 firefox
28976 pts/2    SNl    0:02 /usr/lib/firefox/plugin-container /opt/netscape/plugins/nppdf.so -greomni /usr/lib/firefox/omni.ja 28928 plugin

pdfっぽいのがあるので,たぶんこれでしょう.ということで,なんかしらのでバイナリエディタで/opt/netscape/plugins/nppdf.soを開きます.バックアップも忘れずに.バイナリエディタEmacsのhexl-modeが好きです.

00021930: 6573 7361 6765 0061 6200 433a 5c6e 7070  essage.ab.C:\npp
00021940: 6466 3332 4c6f 675c 6465 6275 676c 6f67  df32Log\debuglog
00021950: 2e74 7874 0058 5858 3a47 6976 696e 6720  .txt.XXX:Giving 

適当に検索すると,ファイル名っぽい文字列がみつかります.これを/dev/nullとかに書き換えてしまえば良いわけですが,忘れてはいけないのは,"C:\nppdf32Log\debuglog.txt"は26文字(byte)なのに対して,"/dev/null"は9byteなので,以降のデータアドレスがズレないように,17byteをnull埋めしてやる必要があります.

00021930: 6573 7361 6765 0061 6200 2f64 6576 2f6e  essage.ab./dev/n
00021940: 756c 6c00 0000 0000 0000 0000 0000 0000  ull.............
00021950: 0000 0000 0058 5858 3a47 6976 696e 6720  .....XXX:Giving

こんな感じで.firefoxを再起動すれば,晴れて余計なファイルは作られなくなります.

追記(08/15)

自動化できました