BIND 9.x Windows版とWinSock 2の関係

Windows版のBIND 9.xでのみ発生する、意図しないアクセス許可をしてしまう問題についての記事が出ていました:

後者のページが詳しいのですが、簡単にまとめると「WinSock 2はWinSock 2であってBSDソケットではない」という一語に尽きるかと思います。WSAIoctlというAPIは、WinSockに固有のAPIであり、この仕様はWinSockに固有であるわけです。そのため、今回は255.255.255.255のときの値が、BINDの作成者が期待していたとのと異なる関係で問題が生じてしまったというケースです。

WinSock 2はBSDソケットだと思って使っていると、微妙に互換性がない部分があります。注意しないと今回のように危ないことも起こりえるわけです。

なんというか、こういう微妙な差異で、正常系では問題なく動いてしまっているとなかなか気づきにくい不具合ですよね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です