coar 99/01/06 11:14:52
Modified: src CHANGES
src/include ap_mmn.h http_config.h
Log:
If we tried to check the version number of a module compiled
before 1 January 1999, we'd be looking in the wrong places
for the filename and version numbers because the magic cookie
insertion changed their offsets. This fixes that, at the cost
of making any modules compiled between 1 January 1999 and 6 January
1999 unreadable. Balancing a span of five days against six
months makes this seem reasonable.
Revision Changes Path
1.1205 +5 -0 apache-1.3/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /home/cvs/apache-1.3/src/CHANGES,v
retrieving revision 1.1204
retrieving revision 1.1205
diff -u -r1.1204 -r1.1205
--- CHANGES 1999/01/05 08:17:25 1.1204
+++ CHANGES 1999/01/06 19:14:49 1.1205
@@ -1,5 +1,10 @@
Changes with Apache 1.3.4
+ *) Moved the MODULE_MAGIC_COOKIE from before the versions and
+ filename to the end of the STANDARD_MODULE_STUFF. Its
+ presence at the beginning prevented reporting of the filename
+ for modules compiled before 1 January 1999. [Ken Coar]
+
*) SECURITY: ap_os_is_filename_valid() has been added to Win32
to detect and prevent access to special DOS device file names.
[Paul Sutton, Ken Parzygnat]
1.20 +4 -1 apache-1.3/src/include/ap_mmn.h
Index: ap_mmn.h
===================================================================
RCS file: /home/cvs/apache-1.3/src/include/ap_mmn.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- ap_mmn.h 1999/01/05 08:17:27 1.19
+++ ap_mmn.h 1999/01/06 19:14:51 1.20
@@ -196,12 +196,15 @@
* - added MODULE_MAGIC_COOKIE to identify module
structs
* 19990103 (1.3.4-dev) - added ap_array_pstrcat()
* 19990105 (1.3.4-dev) - added ap_os_is_filename_valid() to Win32
+ * 19990106 (1.3.4-dev) - Move MODULE_MAGIC_COOKIE to the end of the
+ * STANDARD_MODULE_STUFF macro so the version
+ * numbers and file name remain at invariant offsets
*/
#define MODULE_MAGIC_COOKIE 0x41503133UL /* "AP13" */
#ifndef MODULE_MAGIC_NUMBER_MAJOR
-#define MODULE_MAGIC_NUMBER_MAJOR 19990105
+#define MODULE_MAGIC_NUMBER_MAJOR 19990106
#endif
#define MODULE_MAGIC_NUMBER_MINOR 0 /* 0...n */
#define MODULE_MAGIC_NUMBER MODULE_MAGIC_NUMBER_MAJOR /* backward
compat */
1.100 +8 -8 apache-1.3/src/include/http_config.h
Index: http_config.h
===================================================================
RCS file: /home/cvs/apache-1.3/src/include/http_config.h,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -r1.99 -r1.100
--- http_config.h 1999/01/01 20:27:47 1.99
+++ http_config.h 1999/01/06 19:14:51 1.100
@@ -186,10 +186,6 @@
*/
typedef struct module_struct {
- unsigned long magic; /* Magic Cookie to identify a module
structure;
- * It's mainly important for the DSO facility
- * (see also mod_so).
- */
int version; /* API version, *not* module version;
* check that module is compatible with this
* version of the server.
@@ -202,11 +198,15 @@
*/
const char *name;
-
void *dynamic_load_handle;
struct module_struct *next;
+ unsigned long magic; /* Magic Cookie to identify a module
structure;
+ * It's mainly important for the DSO facility
+ * (see also mod_so).
+ */
+
/* init() occurs after config parsing, but before any children are
* forked.
* Modules should not rely on the order in which create_server_config
@@ -285,13 +285,13 @@
* signal an error). See src/include/ap_mmn.h for MMN version history.
*/
-#define STANDARD_MODULE_STUFF MODULE_MAGIC_COOKIE, \
- MODULE_MAGIC_NUMBER_MAJOR, \
+#define STANDARD_MODULE_STUFF MODULE_MAGIC_NUMBER_MAJOR, \
MODULE_MAGIC_NUMBER_MINOR, \
-1, \
__FILE__, \
+ NULL, \
NULL, \
- NULL
+ MODULE_MAGIC_COOKIE
/* Generic accessors for other modules to get at their own module-specific
* data