<snip> I suspect this is a consequence of a simple-minded symbol resolution facility that can't detect or report a buffer overrun when the length of a symbol's value exceeds the length of its name. </snip>
The symbol substitution service (ASASYMBM) is indeed quite simple-minded. The choice to truncate in a case where substitution would otherwise have overrun the input buffer was a conscious one, to avoid burdening thousands of programs with "what do I do if truncation did happen (or would have happened)?". But yes, that is why the symbols were deprecated. As of z/OS 2.2, we now support symbols that have longer values than the length of the name, but with a naming protocol that lets it visually be seen that such a symbol is being used (symbol name ends with underscore). The silent truncation still happens. But at least the user of the symbol has an easy way of seeing that they are taking on the risk of such truncation. Peter Relson z/OS Core Technology Design ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
