You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apache-bugdb@apache.org by "R.K.Owen" <rk...@owen.sj.ca.us> on 1999/12/03 19:04:07 UTC

mod_cgi/5413: Environment variable names converted to underscores (_) passed to CGI scripts

>Number:         5413
>Category:       mod_cgi
>Synopsis:       Environment variable names converted to underscores (_) passed to CGI scripts
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    apache
>State:          open
>Class:          sw-bug
>Submitter-Id:   apache
>Arrival-Date:   Fri Dec  3 10:10:01 PST 1999
>Last-Modified:
>Originator:     rk@owen.sj.ca.us
>Organization:
apache
>Release:        1.3.9
>Environment:
> uname -a
Linux hooke 2.2.13 #1 Fri Nov 26 23:57:35 PST 1999 i686 unknown
> gcc -v
Reading specs from /usr/local/pkg/gcc/2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.
2/specs
gcc version 2.95.2 19991024 (release)

./configure  --with-layout=Owen.layout:Owen \
        --with-perl=/usr/local/pkg/perl5/default/bin/perl \
        --verbose
Pertinent portion of Owen.layout:
#
# Owen server
<Layout Owen>
    prefix:        /usr/local/httpd/apache/1.3.9
    exec_prefix:   $prefix
    bindir:        $exec_prefix/bin
    sbindir:       $exec_prefix/bin
    libexecdir:    $exec_prefix/libexec
    mandir:        $prefix/man
    sysconfdir:    /etc+
    datadir:       /usr/local/httpd/httpd_site
    iconsdir:      $datadir/icons
    htdocsdir:     $datadir/htdocs
    cgidir:        $datadir/cgi-bin
    includedir:    $prefix/include
    runtimedir:    $localstatedir/logs
    logfiledir:    /var/log/httpd
    localstatedir: $logfiledir
    proxycachedir: $localstatedir/proxy
</Layout>
>Description:
Here is the typical result when I look at the environment variables within
a CGI script (Bourne shell or Perl):
________________ = 
Apache/1.3.9 Server at hooke.owen.sj.ca.us Port 80

_______________ = HTTP/1.0
______________ = GET
_____________ = /usr/local/httpd/httpd_site/htdocs
____________ = 
___________ = /cgi-bin/printenv
_________ = owen.sj.ca.us
____________________ = en
____ = /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
___________________ = iso-8859-1,*,utf-8
_________________ = CGI/1.1

It appears that the environment variables are passed, but the names/labels have
had each character converted to underscores (_).  This causes endless problems
for the Perl scripts.
I have searched the bug list, FAQ, etc. and deja.com to see if anyone else has
reported such a problem ... found nothing close.
>How-To-Repeat:
http://owen.sj.ca.us/cgi-bin/printenv
(It's only available during working hours & the middle of the night -
 Pacific Time).
>Fix:
No.  However, if you have any ideas where to look ... I can  attach to
the process and see what's happening.
>Audit-Trail:
>Unformatted:
[In order for any reply to be added to the PR database, you need]
[to include <ap...@Apache.Org> in the Cc line and make sure the]
[subject line starts with the report component and number, with ]
[or without any 'Re:' prefixes (such as "general/1098:" or      ]
["Re: general/1098:").  If the subject doesn't match this       ]
[pattern, your message will be misfiled and ignored.  The       ]
["apbugs" address is not added to the Cc line of messages from  ]
[the database automatically because of the potential for mail   ]
[loops.  If you do not include this Cc, your reply may be ig-   ]
[nored unless you are responding to an explicit request from a  ]
[developer.  Reply only with text; DO NOT SEND ATTACHMENTS!     ]