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 :)