1
EDIT:このプロジェクトが再度与えられたため、コード/説明が削除されました。ソケット記述子がrecvfromへの呼び出し後に変更されました
私はrecvfrom()呼び出しで、間違った長さ/サイズを渡しただけです。この行に
EDIT:このプロジェクトが再度与えられたため、コード/説明が削除されました。ソケット記述子がrecvfromへの呼び出し後に変更されました
私はrecvfrom()呼び出しで、間違った長さ/サイズを渡しただけです。この行に
:
if(recvfrom(temp->sockfd, sendHostIP, BUFFER_LEN, 0, (struct sockaddr *)&recvAddr, &recvLen) < 0)
errorMsg("recvfrom");
あなたは長さ(256)としてBUFFER_LEN
を渡すが、sendHostIP
のみ長MAXHOSTNAMELEN
(64)です。
これにより、recvfrom()
はそのバッファーをオーバーフローさせます。同じ問題は、localHostIP
に読み込んだときに発生します。
ああ、そうです。私は間違って配列のサイズをコピー/貼り付けする必要があります。ありがとう! – 235711131719