Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!rutgers!labrea!aurora!ames!sdcsvax!ucbvax!YALE.ARPA!LEICHTER-JERRY From: LEICHTER-JERRY@YALE.ARPA Newsgroups: comp.os.vms Subject: Re: Problems defining MAIL$EDIT to be CALLABLE_TPU Message-ID: <8708100445.AA25116@ucbvax.Berkeley.EDU> Date: Mon, 10-Aug-87 00:45:35 EDT Article-I.D.: ucbvax.8708100445.AA25116 Posted: Mon Aug 10 00:45:35 1987 Date-Received: Mon, 10-Aug-87 05:40:02 EDT Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: Distribution: world Organization: The ARPA Internet Lines: 34 ...Suppose one's private section file uses the TPU built-in CALL_USER to invoke some external routine whose identity is defined by the TPU$CALLUSER logical name. That works fine normally, i.e., when invoking TPU directly from DCL via EDIT/TPU. But when trying MAIL/EDIT, [with MAIL$EDIT defined as CALLABLE_TPU] the proper section file is picked up (i.e., properly translating TPUSECINI) but "it" doesn't seem to know about the TPU$CALLUSER definition and complains of (approximately) "error activating SYS$LIBRARY:TPU$CALLUSER.EXE" and then says something like "Could not find a routine for CALL_USER to invoke." In summary, "it" (i.e., callable_TPU (or somebody)), can translate TPUSECINI from the process table, but it seems unable to translate TPU$CALLUSER from the same table.... The MAIL image is installed with elevated privileges. Such an image, when it attempts to map a shareable image - either statically, by being linked against it, or dynamically, using LIB$FIND_IMAGE_SYMBOL (which is what TPU does to find your CALL_USER code) - is subject to two restrictions: - Only EXEC mode logicals are examined; - The shareable image found must itself be INSTALL'ed. (The reason for this is security: If I could cause MAIL to run my own code, I could have it use MAIL's installed privileges - which include SYSPRV - to do whatever I wanted to the system. TPU section files don't contain executable code as such - they are interpreted by TPU - so these restrictions don't apply.) I can't think of any work-arounds, other than using a spawned editor, or INSTALL'ing image containing your CALL_USER code (which might be practical in some situtations, e.g., a private workstation). -- Jerry -------