[fpc-pascal] CRITICAL Bug in Lnet DNSLookup failure problem
Dennis Poon
dennis at avidsoft.com.hk
Thu Nov 28 08:44:19 CET 2013
when using lnet to connect to a remote server at DomainName : Port e.g.
yahoo.com : 80
in file lCommon.pp line 492:
function StrToNetAddr(const IP : String) : Sockets.in_addr;inline;
begin
result := Sockets.StrToNetAddr(IP);
end;
The above function did not raise exception when the IP parameter is a
null string, which is the return value of a failed DNSlookup of a domain
name.
The consequence is grave!
When the DNS lookup fails, it returns a null IP string which the
StrToNetAddr converts to the 0.0.0.0 IPv4.sin_Addr structure without
raising any exception. If the local computer happens to have a port
listening at port 80, it just connects to the port 80 of the local
machine whenever the DNS lookup of the target domain fails!!!
From past experience, the lnet author non longer responds to the any
bug report, I am only mentioning this bug here so that other lnet users
won't have to find out this bug the hard way (3 days of looking for bug
in the wrong places) like I did.
The fix is simple, so I will modify the code myself but just hope every
new users of lnet can apply this fix before they use lnet.
Dennis
More information about the fpc-pascal
mailing list