rtl-extra: fix StrToHostAddr to not accept numbers outside of byte value range by silently wrapping them to a byte

git-svn-id: trunk@44845 -
This commit is contained in:
Károly Balogh 2020-04-19 11:44:22 +00:00
parent 8cc76b4b33
commit 0d22ee477a

View File

@ -323,8 +323,13 @@ begin
else
Dummy:=IP;
Val (Dummy,k,J);
array4int(temp.s_addr)[i]:=k;
If J<>0 then Exit;
If J<>0 then
exit;
array4int(temp.s_addr)[i]:=byte(k);
{ check if after wrapping to a byte, our number is
still the same. if not, it can't be part of an IP. }
If array4int(temp.s_addr)[i]<>k then
exit;
end;
strtohostaddr.s_addr:=ntohl(Temp.s_addr);
end;