MPlayer 1.0rc1にバッファオーバーフローのバグ
MPlayer(現行バージョンの1.0rc1)にはバッファオーバーフローのバグがあるらしい。
参考:http://lists.grok.org.uk/pipermail/full-disclosure/2007-March/052738.html
MPlayerの公式サイトにはまだパッチが無いので自分でソースをいじって直す。
直す箇所
MPlayerのソースを展開して、「loader/dmo/DMO_VideoDecoder.c」の123行目辺りで、memcpy()関数のある行の次に、
this->iv.m_bh->biSize = bihs;
を付け加える。
前後と合わせると、こんな感じなる。
122: this->iv.m_bh = malloc(bihs); 123: memcpy(this->iv.m_bh, format, bihs); 124: this->iv.m_bh->biSize = bihs; 125: 126: this->iv.m_State = STOP; 127: //this->iv.m_pFrame = 0;
修正したら、後はいつも通りにコンパイルする。
Vine Linux 4.0を4.1にアップグレード
Vine Linux 4.1がリリースしてたので、4.0からアップグレードする。
Vine LinuxのWEBサイトにアップグレード方法が書いてあるので、そのまま実行する。
http://www.vinelinux.org/
4.0 からのアップデートは、apt-line を 4.1 に変更 (/etc/apt/sources.list を 4.1 用に変更) して、
# apt-get update
# apt-get dist-upgrade
XEmacsのコマンド・メモ(検索・置換)
XEmacs(Emacs)での検索・置換のメモ。
検索
★インクリメント検索
- C-s … 文末に向かって検索
- C-r … 文頭に向かって検索
「C-s」のsはsearch、「C-r」のrはsの1つ前の文字、と覚える。
「C-s」を押すと、「I-search:」と出るので、ここに検索したい文字列を入力する。
ちなみに、ここに「C-j」を入力すると、改行にマッチさせることが出来る。
★非インクリメント検索
- C-s リターン … 文末に向かって検索
- C-r リターン … 文頭に向かって検索
インクリメント検索の時に、何も文字を入れないでリターンキーを押すと、非インクリメント検索になる。
★単語検索
- C-s リターン C-w … 文末に向かって検索
- C-r リターン C-w … 文頭に向かって検索
非インクリメント検索で、「C-w」を押すと単語検索になる。
例えば、「foobar foo bar」と言う文章があって、「foo」を単語検索したら、「foobar」にはマッチせず、「foo」だけにマッチする。
置換
★対話的置換
- M-% … 対話的置換
- M-C-% … 対話的置換(正規表現)
カーソル位置から文末に向かって置換する。
置換前と置換後の文字列を入力すると、検索候補の文字列に移動して、置換するか聞いてくるので、置換するときは「y」か「スペース」、置換しないなら「n」か「DEL」を押す。
他にも次の操作が出来る。
- 「!」 … 全部置換
- 「,」 … 文字列を置換するが、位置を移動しない
- 「^」 … 前の置換候補の位置に移動する
- 「C-r」 … リカーシブエディット
リカーシブエディットは、置換を一時中断して編集モードに戻る。
リカーシブエディットを終了するには、「M-x exit-recursive-edit」と入力する。
★置換範囲を選択
領域指定を使うと、置換範囲を選択出来る。
領域指定は下記記事を参照。
http://d.hatena.ne.jp/SPR/20070204
PHP 5.2.1がコンパイル出来ない
OpenBSD 3.9にインストールしたPHP 5.2.0を5.2.1にしようとしたが、コンパイル中にエラーで止まる。
どうもPHP 5.2.1のバグらしい。
参考:http://bugs.php.net/bug.php?id=40410
エラーメッセージはこんな感じ。
/www/build/scripts/php-5.2.1/ext/posix/posix.c: In
function `zif_posix_getgrgid':
/www/build/scripts/php-5.2.1/ext/posix/posix.c:889:
error: `_SC_GETGR_R_SIZE_MAX' undeclared (first use in
this function)
/www/build/scripts/php-5.2.1/ext/posix/posix.c:889:
error: (Each undeclared identifier is reported only once
/www/build/scripts/php-5.2.1/ext/posix/posix.c:889:
error: for each function it appears in.)
make: *** [ext/posix/posix.lo] Error 1
上記URLに、スナップショット版を使えとあるので、下記URLからダウンロードする。
http://snaps.php.net/
後は、以前にPHP 5.2.0をインストールした手順でインストールする。
$ ftp http://snaps.php.net/php5.2-200702201330.tar.gz $ tar xzvf php5.2-200702201330.tar.gz $ cd php5.2-200702201330 $ ./configure --prefix=/usr/local/php-5.2-devel \ --enable-mbstring \ --with-apxs2=/usr/local/apache22/bin/apxs \ --with-mysql=/usr/local/mysql $ make $ su # make install
Windows版RealVNCを改造して日本語キーボードに対応させる
Windows版のVNCViewerを使ってLinuxやFreeBSDを遠隔操作すると、
「半角/全角」キーが利かないので、SCIMを起動させるのが面倒くさい。(Ctrl+スペースで出来るが)
RealVNCのソースを改造して、日本語キーボードに対応させる事にする。
環境:Windows XP + Visual Studio 2005 + VNC 4.1.2
以下手順
続きを読むVine Linux 4.0用GCC 4.1.2のRPM
少し前にGCC 4.1.2がリリースしたので、Vine Linux 4.0用にRPMを作った。
Vine Linxu標準のGCC 4.0のRPMのSPECファイルを改造して4.1.2用にした。
GCC 4.1.2を使ってSVN版FFmpegをコンパイルする
SVN版FFmpegは、Vine Linux付属のGCC 3.3.6を使うと、一部上手くコンパイルできない箇所があるので、GCC 4.1.2を使ってコンパイルする。
下記の記事のconfigureを次の通りに変えると、GCC 4.1.2でコンパイルされる。
http://d.hatena.ne.jp/SPR/20070123
$ ./configure \
--cpu=pentium4 \
--cc=gcc-4.1.2 \
--disable-debug \
--enable-mp3lame \
--enable-libogg \
--enable-vorbis \
--enable-faad \
--enable-faac \
--enable-x264 \
--enable-xvid \
--enable-a52 \
--enable-pp \
--enable-pthreads \
--enable-gpl