Date: Wed, 24 Jun 1998 19:09:24 -0400 (EDT) From: Mikhail Teterin <mi@video-collage.com> To: FreeBSD-gnats-submit@FreeBSD.ORG Subject: bin/7059: sh dumps core on this script Message-ID: <199806242309.TAA09928@xxx.video-collage.com>
next in thread | raw e-mail | index | archive | help
>Number: 7059
>Category: bin
>Synopsis: sh dumps core on this script
>Confidential: yes
>Severity: serious
>Priority: high
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Jun 24 16:10:01 PDT 1998
>Last-Modified:
>Originator: Mikhail Teterin
>Organization:
Video Collage, Inc.
>Release: FreeBSD 2.2.6-BETA i386
>Environment:
QUERY_STRING=First_Name=Mikhail&Last_Name=Teterin&Phone=617-332-0552&Fax=&Email=mi%40aldan.algebra.com&Company=%26ls&Division=&Title=&Company_Size=less+than+25&Address=&City=&State=&Postal_Code=&Country=&Reference=Softimage+Website&Intended_Use=&Number_Users=single&Programming=Yes&B2=Submit&QQQLINKQQQ=./dura
<------ start of mail.cgi script --------------->
#!/bin/sh
SETTINGS_DIR=`eval basename \`basename $0\``
# Do the mailing.
EMAILS_TXT=$SETTINGS_DIR/e-mails.txt
# If the file with addresses exist --
# use it. Otherwise, use hardcoded address.
if [ -r $EMAILS_TXT ]
then
EMAILS=`egrep -v ^# $EMAILS_TXT`
else
EMAILS=mi
fi
(env ; cat) | mail -s $0 $EMAILS
# Output the ThankYou text:
# First, look for the hidden field:
for pair in `echo ${QUERY_STRING} | sed 's/&/ /g'` ; do
_TY_FILE=${pair#QQQLINKQQQ=}
if [ $_TY_FILE != $pair ]
then
_TY_FILE=${DOCUMENT_ROOT}${_TY_FILE}
test -r ${_TY_FILE} || \
logger "${_TY_FILE} does not exist or is not readable"
break
fi
done
TY_FILE=${_TY_FILE:-$SETTINGS_DIR/ThankYou.html}
# This will tell the user's browser it will receive HTML
cat << BEGIN_HTML
Content-Type: text/html
BEGIN_HTML
# If the custom ThankYou.html exists -- output it,
# otherwise, output the build-in default message:
if [ -r $TY_FILE ]
then
cat $TY_FILE
else
cat << EO_TY
<HTML>
<HEAD>
<TITLE>Thank you</TITLE>
</HEAD>
<BODY>
<H1>Thank you for contacting us.</H1>
The information you submitted was forwarded for
processing.
<HR>
<img SRC="/vclogo.gif" ALT="Video Collage" ALIGN="RIGHT" WIDTH="182" HEIGHT="146
>Description:
When the script is ran (with or without -x) it dies with seg-fault.
This happens after processing the Email-part of QUERY_STRING . It
started happending after I added the line with logger to it, although
I can not see a relation. The script's checksum is
473ad5b1e55577acf5ff70190e270894
After rebuilding sh for debugging I find:
0xc667 in popstackmark (mark=0xefbfd690) at memalloc.c:188
188 stackp = sp->prev;
(gdb) p sp
$1 = (struct stack_block *) 0x0
My memalloc.c is
$Id: memalloc.c,v 1.4.2.1 1997/08/25 09:10:08 jkh Exp $
>How-To-Repeat:
setenv QUERY_STRING as set above
sh -x ./mail.cgi
>Fix:
Don't know... Do not want to use bash for this, although it works
with no problems...
>Audit-Trail:
>Unformatted:
">
</BODY>
</HTML>
EO_TY
fi
<----------- End of mail.cgi ------------->
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199806242309.TAA09928>
