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
This entry was posted in コンピュータ and tagged , , by bugyo. Bookmark the permalink.

Deprecated: Creation of dynamic property WP_Query::$comments_by_type is deprecated in /usr/home/bugyo/public_html/b-log/wp-includes/comment-template.php on line 1528

Leave a Reply

Your email address will not be published. Required fields are marked *

*