Re: strcpy, strlcpy.
新城@大学です。こんにちは。
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() の話とは関
係ありません。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735