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, "&amp;") ;
                                }
  -                         if ((i & 1) == 0)
  -                             oputc (r, '=' ) ;
  -                         else if (i < f)
  -                             oputs (r, "&amp;") ;
  +                     
                            }
  -                 
  -                     }
  -                 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, "&amp;") ;
  -                         pKey     = hv_iterkey (pEntry, &li) ;
  -                         OutputToHtml (r, pKey) ;
  -                         oputc (r, '=' ) ;
  +                         hv_iterinit (pHV) ;
  +                         while (pEntry = hv_iternext (pHV))
  +                             {
  +                             if (i++ > 0)
  +                                 oputs (r, "&amp;") ;
  +                             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") ;
       
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to