Progress
Programming
Handbook


R-code CRCs and Procedure Integrity

When Progress compiles a procedure, it calculates a special CRC based on the procedure name and code content, and stores it in the r-code. This r-code CRC (as distinguished from database CRC) is useful to ensure the integrity and security of Progress procedures, especially for schema triggers.

If you choose to have CRCs checked for a schema trigger, the r-code CRC of the trigger procedure definition is stored in the trigger schema. The trigger procedure cannot run unless it has a matching r-code CRC. This prevents a trigger procedure with the same name, but different 4GL code, from being improperly substituted for the original trigger procedure. Such a substitution can cause damage to your database or override your security.

For other application r-code files, you can use the RCODE–INFO handle to build a procedure security table that contains the name and r-code CRC of each r-code file in your application (except the startup procedure). Before running a procedure, your application can use the RCODE–INFO handle to validate the r-code CRC of its r-code file against the entry established for it in the procedure security table.

NOTE: If there is no r-code for the procedure, any source (.p) procedure returns an unknown (?) CRC value.


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095