Consultor Eletrônico



Kbase P108831: base64-encode function with memptr crashes session
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   31/10/2007
Status: Unverified

FACT(s) (Environment):

OpenEdge 10.x

SYMPTOM(s):

base64-encode function with memptr crashes session

Passing the LONGCHAR output of the base64-encode function to a character input parameter of a procedure crashes the session. For example:


procedure test:
define input parameter pctest as character no-undo.
message pctest
view-as alert-box info buttons ok.
end.

define variable m as memptr no-undo.
m = ?.
run test (base64-encode(m)).


//=====================================================
PROGRESS stack trace as of Thu Sep 15 13:49:17 2005
//=====================================================
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 1037F2F4 01:0037E2F4 C:\Programme\dlc100b\bin\prow32.dll
Registers:
EAX:00000306
EBX:01987918
ECX:00000306
EDX:00000306
ESI:00A448CC
EDI:00BADF04
CS:EIP:001B:1037F2F4
SS:ESP:0023:0012F9E4 EBP:00000000
DS:0023 ES:0023 FS:003B GS:0000
Flags:00010206

Call Stack:
Address Frame

//=====================================================
PROGRESS stack trace as of Thu Sep 15 13:49:18 2005
//=====================================================
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 1037F2F4 01:0037E2F4 C:\Programme\dlc100b\bin\prow32.dll
Registers:
EAX:00000306
EBX:01987918
ECX:00000306
EDX:00000306
ESI:00A448CC
EDI:00BADF04
CS:EIP:001B:1037F2F4
SS:ESP:0023:00000008 EBP:00000000
DS:0023 ES:0023 FS:003B GS:0000
Flags:00010206

Call Stack:
Address Frame

//=====================================================
PROGRESS stack trace as of Thu Sep 15 13:49:25 2005
//=====================================================
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 00D9D2B8 01:000FC2B8 C:\Programme\dlc100b\bin\vsapi.dll
Registers:
EAX:00000018
EBX:1048B640
ECX:00F69550
EDX:7C91EB94
ESI:00000008
EDI:00BA0C64
CS:EIP:001B:00D9D2B8
SS:ESP:0023:0012FCB4 EBP:0012FCB8
DS:0023 ES:0023 FS:003B GS:0000
Flags:00010293

Call Stack:
Address Frame
00D9D2B8 0012FCB8 vsFileMove+1D78
00D2F7A6 0012FCCC vsPropGetB+236
00CE9261 0012FCDC vsUnregisterWindow+11
100593B6 0012FD18 DllStartup+A96
00BA0B34 00BCB2D4 0000:00000000

//=====================================================
PROGRESS stack trace as of Thu Sep 15 13:49:26 2005
//=====================================================
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 00D9D2B8 01:000FC2B8 C:\Programme\dlc100b\bin\vsapi.dll
Registers:
EAX:00000018
EBX:1048B640
ECX:00F69550
DX:7C91EB94
ESI:00000008
EDI:00BA0C64
CS:EIP:001B:00D9D2B8
SS:ESP:0023:00BCB2DC EBP:0012FCB8
DS:0023 ES:0023 FS:003B GS:0000
Flags:00010293

Call Stack:
Address Frame
00D9D2B8 0012FCB8 vsFileMove+1D78
00D2F7A6 0012FCCC vsPropGetB+236
00CE9261 0012FCDC vsUnregisterWindow+11
100593B6 0012FD18 DllStartup+A96
00BA0B34 00BCB2D4 0000:00000000

CAUSE:

Bug# OE00120332

FIX:

Upgrade to OE10.1A

Or

If upgrade is not possible, the workaround is to change the procedure input parameter to a LONGCHAR data type.