>Number: 1317
>Category: os-aix
>Synopsis: Proxy Module - File/directory name on AIX 1.X cannot be "@"
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: apache
>State: open
>Class: sw-bug
>Submitter-Id: apache
>Arrival-Date: Fri Oct 24 16:50:00 PDT 1997
>Last-Modified:
>Originator: [EMAIL PROTECTED]
>Organization:
apache
>Release: 1.2.4
>Environment:
i386-ibm-aix - IBM AIX Version 1.3.0 ptf (patchlevel) 0024
gcc 2.7.2.3
>Description:
The IBM AIX version 1.X operating system does not allow a file name or directory
name to be "@" (a single ampersand). When I enable and use the mod_proxy
module, it is consistently logging the following type of errors:
[Thu Oct 23 20:30:35 1997] proxy: error creating cache directory
- mkdir: /usr/local/etc/httpd/proxy/2/G/@: No such file or directory
[Thu Oct 23 20:30:35 1997] proxy: error linking cache file
- link: /usr/local/etc/httpd/proxy/2/G/@/cFQnVidGCEF7152linQ: No such file or
directory
[Thu Oct 23 20:36:09 1997] proxy: error creating cache directory
- mkdir: /usr/local/etc/httpd/proxy/W/c/@: No such file or directory
[Thu Oct 23 20:36:10 1997] proxy: error linking cache file
- link: /usr/local/etc/httpd/proxy/W/c/@/@[EMAIL PROTECTED]@og: No such file or
directory
This fail is caused because a file and/or directory name cannot have a single
"@" as it's name. In AIX versions 1.X and 2.X, IBM used the single "@"
character
as a special type of hidden directory/file. This was used with the IBM/Locus
Transparent Computing Facility (TCF) code.
The ONLY fails I received from the mod_proxy are when the "@" was going to be
used as a file / directory name.
>How-To-Repeat:
The only way to recreate this fail is to use an AIX 1.X or 2.X system.
>Fix:
I can give you a fix for AIX 1.X. A slightly different symbol (which I don't
know) would be required for AIX 2.X. But, the odds of anyone having AIX 2.X
are pretty slim these days, anyway. A quick fix that doesn't screw up the
hashing function is to use the "%" character in place of the "@" character
on AIX 1.X. This causes file names and directory names to be created with a
single "%", which has been running for a while now without any fails of any
type being logged.
To fix AIX 1.X, apply the following context diff to apache_1.2.4 source:
*** src/modules/proxy/proxy_util.c- Fri Oct 24 15:31:02 1997
--- src/modules/proxy/proxy_util.c Fri Oct 24 15:31:52 1997
***************
*** 558,564 ****
--- 558,568 ----
int i, k, d;
unsigned int x;
static const char table[64]=
+ #ifdef __ps2__
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_%";
+ #else
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_@";
+ #endif
MD5Init(&context);
MD5Update(&context, (const unsigned char *)it, strlen(it));
%
>Audit-Trail:
>Unformatted: