トップ «前の日(06-18) 最新 次の日(06-20)» 追記

Masa's blog

検索キーワード:

2009年06月19日 GARP(Gratuitous ARP)

_ GARP(Gratuitous ARP)

今日、初めて知った。自身のIPアドレス対応するMACアドレスを問い合わせるARPのことをGARP(Gratuitous ARP)というらしい。

自分に関する事を問い合わせるARPパケットに意味が有るのかと思うが、

  • IPアドレスのダブリをチェックしたり(別の場所から自分自身が返事したら恐いわな)
  • 他ノードの持つARPテーブル内の自身の情報を強制的に更新させる

という意味がある。

_ request_module[net-pf-10]: waitpid(3788,...) failed, errno 1 (その8)

カーネルソースの書き換え(kernel/kmod.c)により、無理矢理エラーメッセージを出なくして、強引に解決させたと思われた、この一件。実は以下のような状況が発生していた。

501 m-ito@lib100 /home/m-ito> ps ax|egrep defunct
 1276 ?        Z      0:00 [modprobe.old] <defunct>
 1411 ?        Z      0:00 [modprobe.old] <defunct>
13756 ?        Z      0:00 [modprobe.old] <defunct>
13815 ?        Z      0:00 [modprobe.old] <defunct>
 7973 ?        Z      0:00 [modprobe.old] <defunct>
14710 ?        Z      0:00 [modprobe.old] <defunct>
15028 ?        Z      0:00 [smtp_wrapper] <defunct>
15153 pts/3    S+     0:00 egrep defunct
502 m-ito@lib100 /home/m-ito>

modprobe.oldがいわゆるゾンビプロセスになっている。つまり、正しくwaitpid()が機能していないという、あの状況にはっきりと呼応する。

503 m-ito@lib100 /home/m-ito> pstree -p|egrep modprobe.old
        |-named(7972)---modprobe.old(7973)
        |-ntpd(1409)---modprobe.old(1411)
        |-sshd(1274)-+-modprobe.old(1276)
        |            |-sshd(13755)-+-modprobe.old(13756)
        |            |-sshd(13814)-+-modprobe.old(13815)
        |            `-sshd(14709)-+-modprobe.old(14710)
504 m-ito@lib100 /home/m-ito>

named, ntpd, sshd は /usr/local/ 配下にあるのだけれど、Slackware-10.1から11.0にアップデートしたときには、リコンパイルせずに、既存の /usr/local/ をそのまま引き継いだ。

それが原因かと考え、とりあえずnamedをリコンパイルしてみたけれど、状況は変わらなかった。

心配の種は尽きまじ...

_ ruby(1.8.x)儂(わし)的解釈によるメモ(OSコマンドインジェクション対策)

シェルに渡す(外部から入力された)パラメータに関して、特殊文字とか、ややこしいことは考えずに全ての文字に対して、1文字ずつエスケープを行う。

#! /usr/bin/ruby
input = "test5.rb';`echo CRACKED`; echo '\\"
input.gsub!(/(.)/){'\\' + $1}
command = "echo #{input}"
p command
system(command)
"echo \\t\\e\\s\\t\\5\\.\\r\\b\\'\\;\\`\\e\\c\\h\\o\\ \\C\\R\\A\\C\\K\\E\\D\\`\\;\\ \\e\\c\\h\\o\\ \\'\\\\"
test5.rb';`echo CRACKED`; echo '\

これで良くないだろうか?


2016年06月19日 firefox-47.0 and autoconf-2.13

_ firefox-47.0 and autoconf-2.13

I have tried to build firefox-47.0, but it failed :<

$ nice make -f client.mk build
... snip ...
js/src> Could not find autoconf 2.13
*** Fix above errors and then restart with\

but I have already installed autoconf.

$ autoconf --version
autoconf (GNU Autoconf) 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+/Autoconf: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David J. MacKenzie and Akim Demaille.

I don't know why, but firefox-47.0 (or later?) require just autoconf-2.13 to build itself. so, I have installed autoconf-2.13 to only build firefox-47.0 in /usr/local/autoconf-2.13.

$ tar xvvf autoconf-2.13.tar.gz
$ cd autoconf-2.13
$ ./configure --prefix=/usr/local/autoconf-2.13
$ make
# make install
# cd /usr/local/autoconf-2.13/bin
# ln -s autoconf autoconf-2.13

and then I have edited .mozconfig like this.

export LDFLAGS="-latomic"
. $topsrcdir/browser/config/mozconfig
ac_add_options --enable-optimize
ac_add_options --enable-default-toolkit=cairo-gtk2
ac_add_options --disable-debug
ac_add_options --disable-tests
ac_add_options --disable-mochitest
ac_add_options --enable-gstreamer=1.0

and build & install like this.

$ PATH=${PATH}:/usr/local/autoconf-2.13/bin/; export PATH
$ nice make -f client.mk build && cd obj-i686-pc-linux-gnu/ && nice make package

# mkdir /usr/local/firefox-47.0
# cd /usr/local/firefox-47.0
# tar xvvf /home/m-ito/tmp/firefox-47.0/obj-i686-pc-linux-gnu/dist/firefox-47.0.en-US.linux-i686.tar.bz2

# mkdir /usr/local/gecko-sdk-47.0
# cd /usr/local/gecko-sdk-47.0
# cp -rL /home/m-ito/tmp/firefox-47.0/obj-i686-pc-linux-gnu/dist/sdk .
# cd sdk
# cp -rL /home/m-ito/tmp/firefox-47.0/obj-i686-pc-linux-gnu/dist/idl .
# cp -rL /home/m-ito/tmp/firefox-47.0/obj-i686-pc-linux-gnu/dist/include .

Finally I have succeeded to build and install :)