rld Manual

RLD Overview
RLD Manual528857-006
1-9
Security Considerations
Run the program despite references to unresolved procedures, without a warning.
When an error occurs, rld does not continue to run, dlopen() will return a handle
with a value of zero and a summary message can be retrieved by a call to
dlerror(), or the error code can be retrieved by a call to dlresultcode(). The
runtime linker continues to process all of the symbols in all the loadfiles on the loadList
before stopping, giving error messages to hometerm for all missing symbols.
The runtime linker passes these options to the operating system when it calls the
function in the Loader Support Facility that maps the data segment. For the case
where the runtime linker has to detect errors and warnings for unresolved procedures,
the operating system informs the runtime linker to rebind the loadfile to find the
unresolved procedures.
If any procedure symbol is unresolved when a loadfile is loaded, it is bound to the an
“unresolved” function. A default copy of the function is in an implicit library (and when
called it generates a non deferrable signal). The runtime linker searches for the
unresolved symbol using the import controls specified in the loadfile, the same way as
for any other symbol. Therefore a user's definition takes precedence over the default
copy specified in an implicit library. The runtime linker raises an error if the search for
the unresolved function in the implicit libraries fails.
The runtime linker indicates the presence of unresolved procedure symbols in the final
LIC of the loadfile because the operating system performs certain optimizations when
all the symbols are resolved.
Security Considerations
Privileged code is not supported in TNS/R PIC loadfiles. This section applies to
implementation of the runtime linker on TNS/E.
The security considerations for DLLs are the same as for existing SRLs. There are
three basic rules:
1) A loadfile containing PRIV or CALLABLE functions must be licensed.
2) A licensed loadfile cannot be linked to an unlicensed library, with one
exception: a licensed program that contains no CALLABLE or PRIV
procedures can be linked to unlicensed public libraries.
3) If a library is licensed and has unprotected global data (subject to writing
without privilege), then the program and all libraries in the process must be
licensed.
All DLLs have some global data (containing references). rld is trusted but
unprivileged.
These rules apply to the linkage graph (at link time) of the loadfiles, not to the call
graph (at execution time) of individual functions.