Icon View Incident Report

Serious Serious
Reported By: Ulrich Doewich
Reported On: 2/11/2009
For: Version 2.02 Build 7
# 2920 External Procedure Parameter Names Being Changed During CALL Execution

I believe I may have found a small bug with a procedure passing its parameters to an external module.

The SQL is as follows.

In my external module I have this code:

UserId := Params.FindParam('ParUser').AsString;


which results in "Access violation at address 01C5DFF7 in module 'RCServer_EM.dll'. Read of address 00000030".

PROCEDURE "ProcLogin" (IN "ParAlias" VARCHAR(32) COLLATE ANSI, IN 
"ParPassHash" VARCHAR(32) COLLATE ANSI, IN "ParPassPlain" VARCHAR(32) 
COLLATE ANSI)
BEGIN
...
CALL ProcEMLdapAuth(LdapHost, LdapPort, LdapVersion, LdapUseTls, 
LdapBase, LdapUser, LdapPassword, ParAlias, ParPassPlain, ResCode);
...
END

PROCEDURE "ProcEMLdapAuth" (IN "ParHost" VARCHAR COLLATE ANSI, IN 
"ParPort" INTEGER, IN "ParVersion" INTEGER, IN "ParUseTls" INTEGER, IN 
"ParBase" VARCHAR COLLATE ANSI, IN "ParAdmin" VARCHAR COLLATE ANSI, IN 
"ParAdminPass" VARCHAR COLLATE ANSI, IN "ParUser" VARCHAR COLLATE ANSI, 
IN "ParUserPass" VARCHAR COLLATE ANSI, OUT "ResCode" INTEGER)
EXTERNAL NAME "RCServer_EM"



Comments Comments and Workarounds
The problem was that the parameter name was no longer ParUser, but rather now was ParAlias due to the bug. The workaround in this specific instance is to refer to the parameter by the name ParAlias instead.


Resolution Resolution
Fixed Problem on 2/14/2009 in version 2.02 build 8


Products Affected Products Affected
ElevateDB Additional Software and Utilities
ElevateDB DAC Client-Server
ElevateDB DAC Client-Server with Source
ElevateDB DAC Standard
ElevateDB DAC Standard with Source
ElevateDB DAC Trial
ElevateDB LCL Standard with Source
ElevateDB VCL Client-Server
ElevateDB VCL Client-Server with Source
ElevateDB VCL Standard
ElevateDB VCL Standard with Source
ElevateDB VCL Trial

Image