新城@大学です。こんにちは。

In article <6500ebba.0405170627.3e87499@posting.google.com>
        mihogaoka2001@yahoo.com (miho) writes:
> > この strcpy() を strlcpy() に書き換える時に、「あ、d の長さ
> > がない」と気が付くはずです。これでバグが1つ減ります。
> いや、それで、ヘボいプログラマが、d の長さがないと気付かずに、
> strcpy(d, s) => strlcpy(d, s, sizeof d)
> ならおっけいね、と目の不自由な的にやってしまうのが
> 問題なのではないでしょうか。ちょっと極端ですけど...

そこまでへぼいプログラマは、大学にでも送って、自分でお金を払っ
て勉強してもらってください。大学としては、歓迎します。

> それよりもっとあり得そうなのは、
> > strcpy → strlcpy の書き替えとは違
> う例として、
> foo(const char s)
> {
>    static char d[SIZE];
>    …;
>    if (strlcpy (d, s, sizeof d) == sizeof d)
>       むにゃむにゃ; 
>    …;
>    return d;
> }
> を、「あ、dを引き数にするよう仕様変更ね、」
> といって以下の様にしちゃう場合が考えられます。

これは、auto 変数を return する話です。strlcpy() の話とは関
係ありません。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\