2008-01-01から1年間の記事一覧

CentOS5.2 リリース

リリースされた感じ。まだあまり弄ってないけど目に付いた変更点は以下。 rsyslog追加 kernelリビジョンアップデート 既存のsysklogdが消えることもなくrsyslogが別パッケージで追加されてる模様。 config形式は既存のsysklogd互換の記述が通るけど、色々と…

PXEでiSCSI boot (multipath)

前回の続き。今度はマルチパス構成でiSCSI bootさせてみる。 基本的な所は前回と共通なので差分がある箇所だけ記述。 ソフトウェアとしてはdevice-mapper-multipathを使用。 iSCSI Target設定 テストなのでiSCSI Enterprise Targetを使用。 同じSCSI identif…

PXEでiSCSI boot

iSCSI SAN bootはHBAが高い、使用できるハードウェアが限られる等あるので PXE経由でiSCSI BOOT出来るように頑張ってみた。 InitiatorとしてはLinux-iSCSIはもうメンテされてないし、色々面倒なので Open-iSCSIを使用。なお、CentOS5にはiscsi-initiator-uti…

dlsymをLD_PRELOADでフック

LD_PRELOADで関数をフックしたい場合の常套手段は以下のような感じだが ここで使用するdlsym自体をフックする必要があったのでどうすればいいのか考えてみた。 void (*target_func)(void *p); void libinit() __attribute__((constructor)); void libinit(){…

net-snmpとlinuxの64bitカウンタ実装

誤動作の調査で調べたのでついでに覚え書き。 snmpdで取得できるネットワークインターフェイスカウンタの値は /proc/net/devを元にしている。中身はこんなの。 # cat /proc/net/dev Inter-| Receive | Transmit ... face |bytes packets errs drop fifo fram…

ordb.org 復活?

しかし罠入り。 2006年の12月頃に終了したはずだけど、今更になってrelays.ordb.orgが 127.0.0.2を返すようになった模様。ワイルドカードで指定されているようで 何引いてもRBLに載っている扱いに。 引いてみるとこんな感じ。 $ dig 1.0.0.127.relays.ordb.o…

SEGV起こすアドレスを事前チェック

未確保なアドレスやガードページに対して参照、実行しようすると SEGVで落とされるが、アクセスする前にダメなアドレスかどうか 判定できないかと思い色々試してみた。今回は読み書きのみ対象。 OSはLinuxで2.6カーネル。 1. SEGVシグナル無視 POSIXでは無視…

glibcのbacktrace

glibc付属のbacktraceでシグナルハンドラ内からbacktraceを呼んだ場合 中途半端な結果しか得られないのは何故かと思い調べてみた。 サンプルコード #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <signal.h> #include <execinfo.h> int (*func_ptr)() = (void *)NULL; int fun</execinfo.h></signal.h></string.h></stdlib.h></unistd.h></stdio.h>…

ダメ関数潰し

個人的にはシンボルがそのままな限り動くLD_PRELOADで対応したいところだが、 ローカル関数やアドレス指定で直接呼び出されている関数にはPLT経由で制御を奪う方法は 使えない。 本番用の弄るのはアレなので、適当にサンプルをでっち上げて練習してみるテス…

2008/12/31 問題

新年早々呼び出されて吹いた。 とりあえず書いたヤツはman date or man strftime 100回読めと。 $ date +%G/%m/%d 2008/01/01 $ date --date=yesterday +%G/%m/%d 2008/12/31今年も先行き不安な様子で。今年中にはどうするか考えないとなー。

core

今年もgdbと戯れていたら年が明けましたとさ。 gオプション付きでコンパイルされているのはなんと幸せなことか。