詳細はsockaddr_in
構造体のサイズであることを、私はいくつかの興味深い詳細に出くわしたいくつかのソケットプログラミングをやろうとしているが、それは余分なパディングがIPアドレスの種類を型キャストのためではなく、で使用されていることを私の理解から、サイズは14バイト です理論では、タイプキャストの後にパディングが残っていれば悪意のあるコードに潜入できませんでしたか?インターネットソケットアドレス、余分な埋め込み?
私に余分な詰め物は未使用メモリのようです。
詳細はsockaddr_in
構造体のサイズであることを、私はいくつかの興味深い詳細に出くわしたいくつかのソケットプログラミングをやろうとしているが、それは余分なパディングがIPアドレスの種類を型キャストのためではなく、で使用されていることを私の理解から、サイズは14バイト です理論では、タイプキャストの後にパディングが残っていれば悪意のあるコードに潜入できませんでしたか?インターネットソケットアドレス、余分な埋め込み?
私に余分な詰め物は未使用メモリのようです。
sockaddr
およびsockaddr_in
構造は、通常、アプリケーションとカーネル/ランタイム間の通信にのみ使用されます。それらはinet_aton()
のような関数で構築され、bind()
のような関数に渡されます。一般的にネットワーク経由では送信されず、ファイルに保存されます。このように、「悪意のある」(またはそれ以外の場合は障害のある)値を「潜入」する方法はありません。これが起こったとしても、余分なデータは受信者によって単純に無視されます。
おそらく、IPv4アドレスよりも大きい将来のネットワークアドレス形式をサポートするために、埋め込みが追加されました。皮肉なことに、これは16バイトのIPv6アドレスをサポートするには不十分でした。
「14ビットのサイズ」 - >>「14バイトのサイズ」 – wildplasser
何かがそのメモリの内容をコードとして解釈して実行しようとしている場合のみ。どちらがバグでしょうか。 –
これは[tag:linux]ではなく、BSD Sockets APIに関するものです。 – EJP