If an external procedure written in Pascal is invoked as a command without arguments, it may fail with a variety of conditions. This was described to some degree in ticket 63. That earlier ticket is being replaced by this more complete description of the problem.
The underlying problem stems from a change made to the command_processor as part of MCR7375. This change introduced a new flag within the arg_list structure, in storage that was once a pad field. MCR7375 assumed this was a safe change to make, that existing code would not be referencing the pad field. However, ALM code in pascal_operators return_zero operators was loading and testing this pad field, assuming it would always be set to 0. If the new flag is set, the test made by return_zero may fail to work as designed when no arguments are passed in the arg_list.
Refer to MCR10025 for further details of this problem, and a similar problem found in cu$arg_ptr code. This cu$arg_ptr problem could cause similar faults, or return invalid argument data when the arg_list is created with no arguments.
Diff:
Diff:
Diff:
Diff:
Closing as ticket has been moved here: http://multics-trac.swenson.org/ticket/40