Misc Change Log

`OpenBSD で scheme のアプリ開発' みたいなことをやってます。

2005-04-12

古いタイプの呼出し規則

foo(char *s)

みたいな関数があって、 内部で s をいじってて、 なおかつ s の長さをチェックしていないライブラリを発見。

中身はこんなの。

foo(char *s)
{
    char buf[N]
    ...
    strcpy(buf, s);
    ...
}

こういうときは、ふつう

foo(char *s, size_t len)
{
    char buf[N]
    ...
    strlcpy(buf, s, sizeof(buf));
    ...
}

だよねえ。

修正案を拙い英語で送ってみる。

Posted at 23:33 | Permalink | Category | Comments