Re: [fpc-pascal] Bug 37080 -- StrToHostAddr accepts all Pascal number notations

2020-05-16 Thread Noel Duffy via fpc-pascal

On 17/05/20 3:00 am, Michael Van Canneyt wrote:



On Sat, 16 May 2020, Michael Van Canneyt wrote:




On Sat, 16 May 2020, Jonas Maebe wrote:


On 15/05/2020 12:39, Noel Duffy via fpc-pascal wrote:
While doing some work on bug 37060, the refactoring of StrToHostAddr 
and

StrToHostAddr6 in the sockets
unit,(https://bugs.freepascal.org/view.php?id=37060), I found that
StrToHostAddr is doing no validation at all on input address characters
before calling the function Val, so any Pascal notation that Val
accepts, such as 0x and $ for hexadecimal, % for binary, & for octal,
and mathematical signs are all accepted in ipv4 octets.


I added a note to https://bugs.freepascal.org/view.php?id=37013 about
the fact that this test program fails if range checking is enabled (I
don't know if the range error is in StrToHostAddr6 or in the test
program itself).


I will check. I never use range checking, so that could have easily 
escaped me.


Fixed 2 occurrences of a range check.


Looking at the code  in SVN, I spotted a couple of still extant 
references to s6_addr16 instead of u6_addr16 in StrToHostAddr6. It's 
possible to trigger range check errors for them. All s6_addr16s should 
be u6_addr16s.


If you try parsing an address like '::' it will hit this part of the 
code.


Sorry for the screw-up. Normally I religiously use range checks in my 
own code, but it completely went out of my head when working on this.




___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal


Re: [fpc-pascal] Bug 37080 -- StrToHostAddr accepts all Pascal number notations

2020-05-16 Thread Noel Duffy via fpc-pascal

On 17/05/20 1:21 am, Jonas Maebe wrote:

On 15/05/2020 12:39, Noel Duffy via fpc-pascal wrote:

While doing some work on bug 37060, the refactoring of StrToHostAddr and
StrToHostAddr6 in the sockets
unit,(https://bugs.freepascal.org/view.php?id=37060), I found that
StrToHostAddr is doing no validation at all on input address characters
before calling the function Val, so any Pascal notation that Val
accepts, such as 0x and $ for hexadecimal, % for binary, & for octal,
and mathematical signs are all accepted in ipv4 octets.


I added a note to https://bugs.freepascal.org/view.php?id=37013 about
the fact that this test program fails if range checking is enabled (I
don't know if the range error is in StrToHostAddr6 or in the test
program itself).


D'oh! Normally I'm scrupulous about turning on range checks in my own 
programs, but I completely forgot to do that here. But I see Michael has 
already fixed it.




___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal


Re: [fpc-pascal] How to implement a simple tcp/ip connection?

2020-05-16 Thread Graeme Geldenhuys
On 16/05/2020 7:13 pm, Bo Berglund via fpc-pascal wrote:
> 
> Well the simplest way to get Indy10 into Lazarus is via Online Package
> Manager!

Do they (whoever it might be) keep it up to date with the lastest Indy?

> it is a rather steep climb since Indy10 is entirely blocking and the
> Delphi components were event driven.

Indy devs explain it here. Blocking is not evil.

  https://www.swissdelphicenter.ch/en/showarticle.php?id=4


Regards,
  Graeme

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal


Re: [fpc-pascal] How to implement a simple tcp/ip connection?

2020-05-16 Thread Bo Berglund via fpc-pascal
On Thu, 14 May 2020 22:02:01 +0100, Graeme Geldenhuys
 wrote:

>On 14/05/2020 5:21 pm, Giuliano Colla wrote:
>> I need to implement a simple dedicated TCP/IP connection between a 
>> client and a server. 
>
>You can always use the Indy TCP components too. I've used them for years
>under Delphi and FPC with great success. Huge amounts of protocols are
>implement and loads of examples available.
>
>  SVN:  svn.atozed.com
>  Git (mirror):  github.com/graemeg/indy
>

Well the simplest way to get Indy10 into Lazarus is via Online Package
Manager! Searh for Indy and it will find Indy10 for you.
THe package is named indylaz.

That said (I also use Indy a lot) if one converts a program from
Delphi where one has used the TServerSocket or TClientSocket classes
it is a rather steep climb since Indy10 is entirely blocking and the
Delphi components were event driven.

I am myself struggling with this problem right now converting an old
Windows service application that is configured from a Delphi
programmed client operating over TCP/IP sockets. And it uses
TClientSocket and TServerSocket
I am going to try LNet hoping it will not bee too different from the
Delphi native components...
(Note: Delphi 7/Delphi 2007)


-- 
Bo Berglund
Developer in Sweden

___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal


Re: [fpc-pascal] Bug 37080 -- StrToHostAddr accepts all Pascal number notations

2020-05-16 Thread Michael Van Canneyt



On Sat, 16 May 2020, Michael Van Canneyt wrote:




On Sat, 16 May 2020, Jonas Maebe wrote:


On 15/05/2020 12:39, Noel Duffy via fpc-pascal wrote:

While doing some work on bug 37060, the refactoring of StrToHostAddr and
StrToHostAddr6 in the sockets
unit,(https://bugs.freepascal.org/view.php?id=37060), I found that
StrToHostAddr is doing no validation at all on input address characters
before calling the function Val, so any Pascal notation that Val
accepts, such as 0x and $ for hexadecimal, % for binary, & for octal,
and mathematical signs are all accepted in ipv4 octets.


I added a note to https://bugs.freepascal.org/view.php?id=37013 about
the fact that this test program fails if range checking is enabled (I
don't know if the range error is in StrToHostAddr6 or in the test
program itself).


I will check. 
I never use range checking, so that could have easily escaped me.


Fixed 2 occurrences of a range check.

Michael.
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal


Re: [fpc-pascal] Bug 37080 -- StrToHostAddr accepts all Pascal number notations

2020-05-16 Thread Michael Van Canneyt



On Sat, 16 May 2020, Jonas Maebe wrote:


On 15/05/2020 12:39, Noel Duffy via fpc-pascal wrote:

While doing some work on bug 37060, the refactoring of StrToHostAddr and
StrToHostAddr6 in the sockets
unit,(https://bugs.freepascal.org/view.php?id=37060), I found that
StrToHostAddr is doing no validation at all on input address characters
before calling the function Val, so any Pascal notation that Val
accepts, such as 0x and $ for hexadecimal, % for binary, & for octal,
and mathematical signs are all accepted in ipv4 octets.


I added a note to https://bugs.freepascal.org/view.php?id=37013 about
the fact that this test program fails if range checking is enabled (I
don't know if the range error is in StrToHostAddr6 or in the test
program itself).


I will check. 
I never use range checking, so that could have easily escaped me.


Michael.
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal


Re: [fpc-pascal] Bug 37080 -- StrToHostAddr accepts all Pascal number notations

2020-05-16 Thread Jonas Maebe
On 15/05/2020 12:39, Noel Duffy via fpc-pascal wrote:
> While doing some work on bug 37060, the refactoring of StrToHostAddr and
> StrToHostAddr6 in the sockets
> unit,(https://bugs.freepascal.org/view.php?id=37060), I found that
> StrToHostAddr is doing no validation at all on input address characters
> before calling the function Val, so any Pascal notation that Val
> accepts, such as 0x and $ for hexadecimal, % for binary, & for octal,
> and mathematical signs are all accepted in ipv4 octets.

I added a note to https://bugs.freepascal.org/view.php?id=37013 about
the fact that this test program fails if range checking is enabled (I
don't know if the range error is in StrToHostAddr6 or in the test
program itself).


Jonas
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal


Re: [fpc-pascal] Return value of StrToHostAddr and StrToHostAddr6 in sockets unit

2020-05-16 Thread Michael Van Canneyt


Applied, thank you very much !

Michael.

On Sat, 16 May 2020, Noel Duffy via fpc-pascal wrote:


Per discussions, I've posted a proposed patch on bug 37060

https://bugs.freepascal.org/view.php?id=37060

I've also attached a test program that exercises the new functions.

___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal


___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal