Introduction and Overview
The AIF module provides support for running Absolute files. The new interfaces used by FileSwitch to invoke Absolute files are used to call the AIF module (see ExecFormats for more details). By default the most protective state is used by the module, where it will not let any un-headered file run. This is the recommended setting and should not be changed by users without due consideration for the implications.
The checks used ensure the consistency of the AIF header on Absolute files. This helps to improve the stability of the system by rejecting code which is malformed.
Technical Details
Configuration
The AIF module can be configured for the current session by setting the AIF$Options system variable. This allows the user to disable certain checks imposed by the module. It is strongly recommended that this not be used by default; it should only be set when no other alternative exists. The options to disable checks will be removed in future.
Logging
The AIF module will log any files which violate any of the checks it applies. All details are logged to the FileSwitch log, together with the error message (even if the error is not reported).
System Variables
The AIF$Options variable should be set to a string of characters indicating the checks which will be overridden:
| Character | Check which is disabled |
|---|---|
| O | Accept over-long files. With this check disabled, files which have had data appended to them, will be allowed to run. The additional data may indicate an incorrectly patched application, or a virus. |
| T | Accept truncated files. With this check disabled, files which have been reduced in size, to smaller than the header declares, will be allowed to run. Such truncation is usually caused by incomplete file transfers. |
| D | Accept files with bad debug data descriptors. With this check disabled, files which contain incorrectly specified debug data will be allowed to run. This may cause problems for debuggers. |
| C | Accept unsuitable code bit size. With this check disabled, code which claims to be 26 bit only will be allowed to run on 32 bit hardware. This is one of the most dangerous options and it should be used only as a last resort. |
| A | Accept non-AIF files. With this check disabled, code which does not have AIF headers will be allowed to run. This may cause problems for very old applications which have been compressed using unsupported compression tools. |
Warning: Disabling the checks imposed by the AIF module is not recommended. Any data loss or hardware damage caused by the disabling of the checks is at the user's own risk.