|
@@ -303,6 +303,9 @@ end;
|
|
|
|
|
|
function StrToHostAddr(IP : AnsiString) : in_addr ;
|
|
function StrToHostAddr(IP : AnsiString) : in_addr ;
|
|
|
|
|
|
|
|
+Const
|
|
|
|
+ AllowedChars = ['.','0'..'9'];
|
|
|
|
+
|
|
Var
|
|
Var
|
|
Dummy : AnsiString;
|
|
Dummy : AnsiString;
|
|
I,j,k : Longint;
|
|
I,j,k : Longint;
|
|
@@ -310,6 +313,9 @@ Var
|
|
|
|
|
|
begin
|
|
begin
|
|
strtohostaddr.s_addr:=0; //:=NoAddress;
|
|
strtohostaddr.s_addr:=0; //:=NoAddress;
|
|
|
|
+ for I:=1 to Length(IP) do
|
|
|
|
+ if Not (IP[I] in AllowedChars) then
|
|
|
|
+ exit;
|
|
For I:=1 to 4 do
|
|
For I:=1 to 4 do
|
|
begin
|
|
begin
|
|
If I<4 Then
|
|
If I<4 Then
|
|
@@ -322,6 +328,8 @@ begin
|
|
end
|
|
end
|
|
else
|
|
else
|
|
Dummy:=IP;
|
|
Dummy:=IP;
|
|
|
|
+ if Length(Dummy)>3 then
|
|
|
|
+ exit;
|
|
Val (Dummy,k,J);
|
|
Val (Dummy,k,J);
|
|
If J<>0 then
|
|
If J<>0 then
|
|
exit;
|
|
exit;
|