You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by dg...@hyperreal.org on 1998/07/20 18:40:41 UTC
cvs commit: apache-1.3/src/os/emx util_os2.c Makefile.tmpl os.h
dgaudet 98/07/20 09:40:41
Modified: src CHANGES
src/os/emx Makefile.tmpl os.h
Added: src/os/emx util_os2.c
Log:
plug "..." and other canonicalization holes under OS/2.
Submitted by: Brian Havard
Revision Changes Path
1.973 +3 -0 apache-1.3/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
retrieving revision 1.972
retrieving revision 1.973
diff -u -r1.972 -r1.973
--- CHANGES 1998/07/20 16:37:05 1.972
+++ CHANGES 1998/07/20 16:40:37 1.973
@@ -1,4 +1,7 @@
Changes with Apache 1.3.2
+
+ *) SECURITY: Plug "..." and other canonicalization holes under OS/2.
+ [Brian Havard]
*) PORT: implement serialized accepts for OS/2. [Brian Havard]
1.9 +1 -1 apache-1.3/src/os/emx/Makefile.tmpl
Index: Makefile.tmpl
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/os/emx/Makefile.tmpl,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- Makefile.tmpl 1998/05/10 13:04:37 1.8
+++ Makefile.tmpl 1998/07/20 16:40:39 1.9
@@ -3,7 +3,7 @@
INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES)
LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS)
-OBJS= os.o os-inline.o
+OBJS= os.o os-inline.o util_os2.o
COPY= os.h os-inline.c
LIB= libos.a
1.8 +1 -0 apache-1.3/src/os/emx/os.h
Index: os.h
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/os/emx/os.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- os.h 1998/07/13 09:57:24 1.7
+++ os.h 1998/07/20 16:40:39 1.8
@@ -2,6 +2,7 @@
#define APACHE_OS_H
#define PLATFORM "OS/2"
+#define HAVE_CANONICAL_FILENAME
/*
* This file in included in all Apache source code. It contains definitions
1.1 apache-1.3/src/os/emx/util_os2.c
Index: util_os2.c
===================================================================
#define INCL_DOSFILEMGR
#include <os2.h>
#include "httpd.h"
#include "http_log.h"
API_EXPORT(char *)ap_os_canonical_filename(pool *pPool, const char *szFile)
{
char buf[HUGE_STRING_LEN];
char buf2[HUGE_STRING_LEN];
int rc, len;
char *pos;
/* Remove trailing slash unless it's a root directory */
strcpy(buf, szFile);
len = strlen(buf);
if (len > 3 && buf[len-1] == '/')
buf[--len] = 0;
rc = DosQueryPathInfo(buf, FIL_QUERYFULLNAME, buf2, HUGE_STRING_LEN);
ap_assert(rc == 0);
strlwr(buf2);
/* Switch backslashes to forward */
for (pos=buf2; *pos; pos++)
if (*pos == '\\')
*pos = '/';
return ap_pstrdup(pPool, buf2);
}