がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

日刊PHPホラー物語(笑

こんばんわ。PHPホラー物語の時間です(笑い
まずは http://bugs.php.net/bug.php?id=36689 をご覧ください。

Bug #36689 syslog() truncates messages
-中略-
Description:

                      • -

the PHP function syslog() truncates messages at 500 characters. it
should not truncate at all or the length at which truncation happens
should be user definable.

………えっと。
まぁとりあえず、問題があるソースコードを拝見。

/usr/src/php-5.1.2/ext/standard/syslog.c

/*
* CAVEAT: if the message contains patterns such as "%s",
* this will cause problems.
*/

php_syslog(priority, "%.500s", message);

参考資料

main/php_syslog.h:#define php_syslog syslog

…そうだねぇ。これじゃ、確かに500文字きっかりまでしかでないよねぇ。
とはいえ。コメント文見てる限りだと「じゃぁどうやって修正したのか」興味ありありなところなのですが。

/usr/src/php-5.1.4/ext/standard/syslog.c

php_syslog(priority, "%s", message);

はい。素晴らしくアドホックな修正です。ぐらっちぇですまぁべらすです。…………さいっていです。
ま、syslog(3)使ってるかぎりは、そっちでコケなければ大丈夫…だとは思うんですがね。