X



C言語の設計ミスった危険な関数トップ10決めようぜ

0007デフォルトの名無しさん
垢版 |
2019/11/23(土) 04:11:30.09ID:l4WHmfnE
最大のミスは、文字列そのものをデータ型としては持たずに、
文字列はヌルで終端された不定長の文字の配列であるとしたことにある。
0012デフォルトの名無しさん
垢版 |
2019/11/26(火) 12:29:09.20ID:dAEqoOXB
scanf
strtok
feof
0013デフォルトの名無しさん
垢版 |
2019/11/26(火) 20:24:02.10ID:feqSm/53
C言語の関数名ってまだリンカがシンボルの先頭から6文字までしか認識しなかった頃の名残だしな
変な短縮形が多い
0014デフォルトの名無しさん
垢版 |
2019/11/27(水) 03:05:40.28ID:nQw9n1Di
strcpy()とか意図しようがしまいが簡単にメモリをぶっ壊せる
よくよく考えるとキチガイ過ぎる
0016デフォルトの名無しさん
垢版 |
2019/11/27(水) 12:31:41.61ID:KtqS+hCI
time
localtime
0018デフォルトの名無しさん
垢版 |
2019/11/27(水) 13:50:48.05ID:pAkxzJaX
>>15
根本的な所を勘違いしてる。

C言語で安全性が求められないからと言って、
C言語で作ったアプリには安全性は求められるだろ?

例えば、getsは安全に使うことが不可能なんだよ。
0021デフォルトの名無しさん
垢版 |
2019/11/30(土) 20:38:28.97ID:4Da+M2q+
>>18
> 例えば、getsは安全に使うことが不可能なんだよ。
ならgetsを使わずにgetcでやればいいだけ
0026デフォルトの名無しさん
垢版 |
2019/12/01(日) 13:17:11.11ID:W5IIwakz
組み込みで文字列扱わないことも多いね。
どんな製品でもほぼ使うのはmemset、memcpy、memcmpぐらいじゃない?
0027デフォルトの名無しさん
垢版 |
2019/12/01(日) 17:41:11.15ID:YWi4MX0G
>>25

>>1のリンク先より

未チェックの時代遅れの関数
以下の関数を、未チェックの時代遅れの関数と定義する。
memcpy, strcpy, strncpy, strcat, strncat (一部抜粋)


半分あてはまってるなw

>>26
memcpyは危険なので使うのはやめましょう
0032デフォルトの名無しさん
垢版 |
2019/12/02(月) 02:04:59.50ID:AAYR8Yqw
>>1
セキュリティ考慮していない元関数より、代替関数の設計ミスが酷いな

strtodとかなにこれw
エラーの返し方がアホすぎる
0033デフォルトの名無しさん
垢版 |
2019/12/02(月) 06:48:47.55ID:kJrDK+4B
>>32
> strtodとかなにこれw
> エラーの返し方がアホすぎる
そう言うのは改善案を提案しないと単なるアホの独り言にしかならんぞw
0034デフォルトの名無しさん
垢版 |
2019/12/02(月) 13:15:48.70ID:EYnQFBh2
一体どういう考えで昔の人は、getsの仕様はあれでOKだと思ったんだろう?
どう考えてもバッファオーバーフローするやん?
しない方法なんて存在するの?
0035デフォルトの名無しさん
垢版 |
2019/12/02(月) 13:18:13.53ID:xJykAg3Z
バッファオーバーフローしないデータを食わせれば良い
わざわざ変なデータを入力するヤツが悪い

って考えの時代の関数だ
レスを投稿する


ニューススポーツなんでも実況