LD_PRELOAD

MovableTypeのデータベースをBerkeley DBからSQLiteに変更しようとして、変換スクリプトを実行すると、 ELFのローダが、 /libexec/ld-elf.so.1: /usr/local/lib/libsqlite3.so.8: Undefined symbol “pthread_create” というエラーを吐いて先に進めない。 実行プログラムの形式にELFを採用しているOSではLD_PRELOADという環境変数を設定しておくと、 指定したライブラリを他のライブラリより先にロードしておくことができるらしい。 これを使って任意の関数を上書きしたりできるそう。 >setenv LD_PRELOAD /usr/lib/libpthread.so.2 >./mt-db2sql.cgi とすると問題なく実行できた。 MovableTypeで使うデータベースをSQLiteに設定してブラウザからアクセスしてみると、 Internal Server Errorが。 エラーログをみると例のエラー、当然か。 CGI実行時にApacheから環境変数を設定できればいいんだろうなと思って調べてみると、 mod_envというのがあるらしい。Apacheを入れたときにデフォルトでロードするようになっていた。 httpd.confに SetEnv LD_PRELOAD /usr/lib/libpthread.so.2 のようにSetEnvディレクトリを書く。 ブラウザからアクセスすると問題なく動いた。 ■LD_PRELOADを使って任意の関数呼び出しにフックしてみる ■CGIの裏側見せます


Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /usr/home/bugyo/public_html/b-log/wp-includes/category.php on line 378

Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /usr/home/bugyo/public_html/b-log/wp-includes/category.php on line 379

Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /usr/home/bugyo/public_html/b-log/wp-includes/category.php on line 380

Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /usr/home/bugyo/public_html/b-log/wp-includes/category.php on line 381

Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /usr/home/bugyo/public_html/b-log/wp-includes/category.php on line 382

Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /usr/home/bugyo/public_html/b-log/wp-includes/category.php on line 383
Posted in コンピュータ | Tagged , , | Leave a reply