Issue 32001  —   Uniface crash when setting tabx $fieldproperties with more than 512 characters

Status:   Planned for resolution in 10.4.01

Solution available in patch(es):      10.3.02.018    9.7.05.031

Description:

 Summary: Uniface crash when setting tabx $fieldproperties with more than 512
 characters

  Environment:
  +Uniface Version  : 9.7.x
  +Operating System : OS independent
  +Database         : DBMS independent

  Reproduction:
  ------------

  1) Create a form with a field that has the Widget Type 'TabEx'
  2) Add a button and the following proc code to the details trigger:

                 variables
                         string V_PROPERTIES
                         numeric vCounter
                 endvariables

                 for vCounter = 0 to 512 step 7
                         V_PROPERTIES = $concat("#000000,", V_PROPERTIES)
                         vCounter = vCounter + 1
                 endfor

      $fieldproperties(F1.E1, "tabcolors") = $concat("tabcolors=", V_PROPERTIES)

     This will attempt to set the tabcolors property ($fieldproperties(F1.E1,
 "tabcolors")) with a string that has more than 512 characters (#000000)
  3) Run the form and click the button

  Actual result
  ----------------------------------

  The uniface application will crash without warning, however, the windows
 eventlog will show the crash due to an access violation:

  Exception code: 0xc0000005
  Fault offset: 0x00650023

  Expected result:
  ---------------

  Uniface should atleast not crash, have a larger buffer for the
 $fieldproperties and log an error.

  Note:
  ----

  Other widget types have a buffer of 2k instead of 512

Workaround:

 keep the total length of tabex $fieldproperties <512

Notes: