winalski@psw.DEC.COM (Paul S. Winalski) (08/10/87)
The problem occurs because the MAIL utility is installed with privileges. Any shareable image invoked from a privileged installed image must itself be an installed image. VMS has this rule to prevent users from substituting trojan horse shared images by (say) redefining a logical name for the shared image, so that the image activator picks up the trojan horse instead of the real shared image. Both TPUSHR and TPU$CCTSHR (which TPUSHR calls) are normally set up as installed images, so MAIL has no problem image activating them via LIB$FIND_IMAGE_SYMBOL when it wants to call CALLABLE_TPU. However, when TPU in turn calls LIB$FIND_IMAGE_SYMBOL to image activate your TPU$CALLUSER image, the image activation fails because your TPU$CALLUSER isn't installed. There are two solutions to the problem: 1) Have your system manager install your TPU$CALLUSER routine by logging in as SYSTEM and issuing the command: $ RUN SYS$SYSTEM:INSTALL INSTALL> filespec INSTALL> ^Z $ where "filespec" is the *full* file specification for your calluser image. INSTALL assumes SYS$LIBRARY: for the directory, which is why you need the full filespec if your file is elsewhere. 2) don't use your CALL_USER routine when in MAIL --PSW