AddToHandle and AddToQueue within I.QLIB call _SetHandleSize without checking for errors.
In conditions when the queue buffers are filled, these calls returned without error which had the effect of increasing the length recorded inside the handle without actually extending the handle size.
This subsequently caused problems with attempts by PtrToPtr to copy data into/from the handle expecting that the length was ok.
PtrToPtr checks the length and calls _SysFail if there is a problem.
This is probably the cause of a few other issues.
Logged In: YES
user_id=257705
Originator: YES
Calls to AddToHandle and AddToQueue are made from I.IP, I.ICMP, I.TCP. All calls should be followed by a check for carry set and appropriate action (e.g. purge the packet)
Logged In: YES
user_id=257705
Originator: YES
Other calls with similar problem are AddToICMPQueue, InsertQueue and InsertDataIntoHandle.
I.DNR is also affected.
Some points in the code of I.DNR and I.IP need more investigation as to what to do. Search for "not sure where to go".
Logged In: YES
user_id=257705
Originator: YES
I.DNR resolved.
Some points in the code of I.IP need more investigation as to
what to do. Search for "not sure where to go".
Source code can be viewed within CVS:
http://marinetti.cvs.sourceforge.net/marinetti/MOSP/Marinetti/Init/
Logged In: YES
user_id=257705
Originator: YES
When this issue has been resolved, retest this issue:
45 Casper causes PtrToPtr failure
Last edit: Andrew Roughan 2017-02-14
Logged In: YES
user_id=257705
Originator: YES
Code tested and minor changes made to clear carry before returning (doh!) when successful.