Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
編集:このプロジェクトが再び与えられ、学生がこの投稿を介して解決策を簡単に見つけることができるため、コード/説明を削除しました。
何が起こったのかを明確にするために、recvfrom()呼び出しで間違った長さ/サイズを渡しただけです。
この行で:
if(recvfrom( temp->sockfd, sendHostIP, BUFFER_LEN, 0, (struct sockaddr *)&recvAddr, &recvLen) < 0) errorMsg("recvfrom");
BUFFER_LEN長さ(256)として渡しますが、長さ(64)sendHostIPのみです。MAXHOSTNAMELEN
BUFFER_LEN
sendHostIP
MAXHOSTNAMELEN
これによりrecvfrom()、そのバッファがオーバーフローします。に読み込んだときにも同じ問題が発生しますlocalHostIP。
recvfrom()
localHostIP