You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl-cvs@perl.apache.org by ri...@apache.org on 2001/02/09 10:46:32 UTC
cvs commit: embperl Changes.pod Makefile.PL epmain.c test.pl
richter 01/02/09 01:46:31
Modified: . Changes.pod Makefile.PL epmain.c test.pl
Log:
- Fixed a SIGSEGV that occurs when an reference to undef is returned
from a [+ +] inside a URL.
Revision Changes Path
1.153 +2 -0 embperl/Changes.pod
Index: Changes.pod
===================================================================
RCS file: /home/cvs/embperl/Changes.pod,v
retrieving revision 1.152
retrieving revision 1.153
diff -u -r1.152 -r1.153
--- Changes.pod 2001/02/07 08:20:38 1.152
+++ Changes.pod 2001/02/09 09:46:31 1.153
@@ -31,6 +31,8 @@
- Fixed problem with including ../foo.html in EmbperlObject. Spotted
by Neil Gunton.
- Added warning if @ISA is not correctly setup/corrupted.
+ - Fixed a SIGSEGV that occurs when an reference to undef is returned
+ from a [+ +] inside a URL.
=head1 1.3.0 (RELEASE) 4 Dec. 2000
1.39 +1 -1 embperl/Makefile.PL
Index: Makefile.PL
===================================================================
RCS file: /home/cvs/embperl/Makefile.PL,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- Makefile.PL 2000/11/13 08:58:29 1.38
+++ Makefile.PL 2001/02/09 09:46:31 1.39
@@ -352,7 +352,7 @@
}
else
{
- $ccdebug = '-g' ;
+ $ccdebug = '-ggdb' ;
$lddebug = '-g' ;
}
}
1.92 +38 -34 embperl/epmain.c
Index: epmain.c
===================================================================
RCS file: /home/cvs/embperl/epmain.c,v
retrieving revision 1.91
retrieving revision 1.92
diff -u -r1.91 -r1.92
--- epmain.c 2001/01/29 10:43:56 1.91
+++ epmain.c 2001/02/09 09:46:31 1.92
@@ -822,46 +822,50 @@
if (pRet)
{
- if (r -> bEscInUrl && SvTYPE(pRet) == SVt_RV && SvTYPE((pAV = (AV *)SvRV(pRet))) == SVt_PVAV)
- { /* Array reference inside URL */
- SV ** ppSV ;
- int i ;
- int f = AvFILL(pAV) ;
- for (i = 0; i <= f; i++)
- {
- ppSV = av_fetch (pAV, i, 0) ;
- if (ppSV && *ppSV)
+ if (r -> bEscInUrl && SvTYPE(pRet) == SVt_RV && (pAV = (AV *)SvRV(pRet)))
+ {
+ if (SvTYPE(pAV) == SVt_PVAV)
+ { /* Array reference inside URL */
+ SV ** ppSV ;
+ int i ;
+ int f = AvFILL(pAV) ;
+ for (i = 0; i <= f; i++)
{
- OutputToHtml (r, SvPV (*ppSV, l)) ;
+ ppSV = av_fetch (pAV, i, 0) ;
+ if (ppSV && *ppSV)
+ {
+ OutputToHtml (r, SvPV (*ppSV, l)) ;
+ }
+ if ((i & 1) == 0)
+ oputc (r, '=' ) ;
+ else if (i < f)
+ oputs (r, "&") ;
}
- if ((i & 1) == 0)
- oputc (r, '=' ) ;
- else if (i < f)
- oputs (r, "&") ;
+
}
-
- }
- else if (r -> bEscInUrl && SvTYPE(pRet) == SVt_RV && SvTYPE((pHV = (HV *)SvRV(pRet))) == SVt_PVHV)
- { /* Hash reference inside URL */
- int i = 0 ;
- HE * pEntry ;
- char * pKey ;
- SV * pSVValue ;
+ else if (SvTYPE(pAV) == SVt_PVHV)
+ { /* Hash reference inside URL */
+ int i = 0 ;
+ HE * pEntry ;
+ char * pKey ;
+ SV * pSVValue ;
+ pHV = (HV *)pAV ;
- hv_iterinit (pHV) ;
- while (pEntry = hv_iternext (pHV))
- {
- if (i++ > 0)
- oputs (r, "&") ;
- pKey = hv_iterkey (pEntry, &li) ;
- OutputToHtml (r, pKey) ;
- oputc (r, '=' ) ;
+ hv_iterinit (pHV) ;
+ while (pEntry = hv_iternext (pHV))
+ {
+ if (i++ > 0)
+ oputs (r, "&") ;
+ pKey = hv_iterkey (pEntry, &li) ;
+ OutputToHtml (r, pKey) ;
+ oputc (r, '=' ) ;
- pSVValue = hv_iterval (pHV , pEntry) ;
- if (pSVValue)
- OutputToHtml (r, SvPV (pSVValue, l)) ;
+ pSVValue = hv_iterval (pHV , pEntry) ;
+ if (pSVValue)
+ OutputToHtml (r, SvPV (pSVValue, l)) ;
+ }
}
- }
+ }
else
{
if (r -> pCurrEscape == NULL)
1.93 +5 -3 embperl/test.pl
Index: test.pl
===================================================================
RCS file: /home/cvs/embperl/test.pl,v
retrieving revision 1.92
retrieving revision 1.93
diff -u -r1.92 -r1.93
--- test.pl 2001/02/07 08:20:51 1.92
+++ test.pl 2001/02/09 09:46:31 1.93
@@ -491,7 +491,7 @@
$testshare
$opt_offline $opt_ep1 $opt_cgi $opt_modperl $opt_execute $opt_nokill $opt_loop
$opt_multchild $opt_memcheck $opt_exitonmem $opt_exitonsv $opt_config $opt_nostart $opt_uniquefn
- $opt_quite $opt_ignoreerror $opt_tests $opt_blib $opt_help $opt_dbgbreak $opt_finderr
+ $opt_quite $opt_qq $opt_ignoreerror $opt_tests $opt_blib $opt_help $opt_dbgbreak $opt_finderr
$opt_ddd $opt_gdb $opt_ab $opt_abpre $opt_abverbose $opt_start $opt_kill $opt_showcookie $opt_cache) ;
{
@@ -566,7 +566,7 @@
$@ = "" ;
$ret = GetOptions ("offline|o", "ep1|1", "cgi|c", "cache|a", "modperl|httpd|h", "execute|e", "nokill|r", "loop|l:i",
"multchild|m", "memcheck|v", "exitonmem|g", "exitonsv", "config|f=s", "nostart|x", "uniquefn|u",
- "quite|q", "ignoreerror|i", "tests|t", "blib|b", "help", "dbgbreak", "finderr",
+ "quite|q", "qq", "ignoreerror|i", "tests|t", "blib|b", "help", "dbgbreak", "finderr",
"ddd", "gdb", "ab:s", "abverbose", "abpre", "start", "kill", "showcookie") ;
$opt_help = 1 if ($ret == 0) ;
@@ -1059,6 +1059,7 @@
$outfile .= ".$$" if ($opt_uniquefn) ;
$defaultdebug = 1 if ($opt_quite) ;
+$defaultdebug = 0 if ($opt_qq) ;
$opt_ep1 = 0 if (!$EP2) ;
$EP1COMPAT = 1 if ($opt_ep1) ;
@@ -1188,7 +1189,8 @@
$errcnt = 7 if ($file eq 'varerr.htm' && $^V && $^V ge v5.6.0) ;
$debug = $test -> {debug} || $defaultdebug ;
- $page = "$inpath/$file" ;
+ $debug = 0 if ($opt_qq) ;
+ $page = "$inpath/$file" ;
$page = "$inpath$testversion/$file" if (-e "$inpath$testversion/$file") ;
#$page .= '-1' if ($ep1compat && -e "$page-1") ;