Project

General

Profile

Bug #4108

CLIENT-PRINCIPAL:EXPORT-PRINCIPAL method quirk (4GL bug?)

Added by Igor Skornyakov almost 5 years ago. Updated almost 5 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
06/07/2019
Due date:
% Done:

0%

billable:
No
vendor_id:
GCD
case_num:
version:

export-cp-bug.p Magnifier (420 Bytes) Igor Skornyakov, 06/07/2019 06:27 AM


Related issues

Related to Base Language - Feature #3810: SECURITY-POLICY and other security features Closed

History

#1 Updated by Igor Skornyakov almost 5 years ago

I've noticed a strange side effect of the CLIENT-PRINCIPAL:EXPORT-PRINCIPAL method call.

If we run the attached export-cp-bug.p program the values of the attributes look empty (while in the serialized data they present).
If we comment out the EXPORT-PRINCIPAL() invocation, the result is as expected.

#2 Updated by Igor Skornyakov almost 5 years ago

  • Description updated (diff)

#3 Updated by Igor Skornyakov almost 5 years ago

  • File deleted (export-cp-bug.p)

#4 Updated by Igor Skornyakov almost 5 years ago

  • Parent task deleted (#3810)

#5 Updated by Igor Skornyakov almost 5 years ago

  • Related to Feature #3810: SECURITY-POLICY and other security features added

#6 Updated by Igor Skornyakov almost 5 years ago

More detailed info:
If after EXPORT-PRINCIPAL invocation any of the attributes are re-assigned then the order of attributes' values in the serialized data is changed (the changed attribute's value goes to the end) and all attributes' values are returned as empty while present in the serialized form. This looks even consistent and is possible to reproduce in FWD. This also applies to the assigning the value of the QUALIFIED-USER-ID which effectively changes the values of USER-ID and DOMAIN-NAME (in this order).
Please note that it is impossible to "reset" CLIENT-PRINCIPAL attributes' values by assignment (except LOGIN-EXPIRATION-TIMESTAMP)- the UNKNOWN value is either rejected or silently ignored if the attribute was assigned. One should use INITIALIZE to reset the CLIENT-PRINCIPAL state.

Also available in: Atom PDF