ports/135974: innd core dumps with newer versions of libperl

Dima Panov Fluffy at fluffy.khv.ru
Wed Jun 24 23:50:30 UTC 2009


On Wednesday 24 June 2009 05:37:12 Steven Schlansker wrote:
> >Number:         135974
> >Category:       ports
> >Synopsis:       innd core dumps with newer versions of libperl
> >Confidential:   no
> >Severity:       serious
> >Priority:       high
> >Responsible:    freebsd-ports-bugs
> >State:          open
> >Quarter:
> >Keywords:
> >Date-Required:
> >Class:          sw-bug
> >Submitter-Id:   current-users
> >Arrival-Date:   Tue Jun 23 18:40:01 UTC 2009
> >Closed-Date:
> >Last-Modified:
> >Originator:     Steven Schlansker
> >Release:        7.2-RELEASE
>
> >Description:
>
> Building innd-2.4.5 and perl-5.10.0_3 from ports ends up with innd
> segmentation faulting in libperl.so whenever it tries to start.

--- lib/perl.c.orig	2008-06-30 04:56:57.000000000 +1100
+++ lib/perl.c	2009-02-11 00:49:49.000000000 +1000
@@ -110,14 +110,18 @@
     if (PerlCode == NULL) {
         /* Perl waits on standard input if not called with '-e'. */
         int argc = 3;
-        const char *argv[] = { "innd", "-e", "0", NULL };
-        char *env[]  = { NULL };
+        const char *argv_innd[] = { "innd", "-e", "0", NULL };
+        char **argv = (char **)argv_innd; /* Cast required by Perl 5.10. */
+        char **env  = { NULL };
 #ifdef PERL_SYS_INIT3
         PERL_SYS_INIT3(&argc, &argv, &env);
 #endif
         PerlCode = perl_alloc();
         perl_construct(PerlCode);
-        perl_parse(PerlCode, xs_init, argc, (char **)argv, env) ;
+#ifdef PERL_EXIT_DESTRUCT_END
+        PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
+#endif
+        perl_parse(PerlCode, xs_init, argc, argv, env) ;
     }
     
     if (startupfile != NULL && filterfile != NULL) {


-- 
Dmitry "Red Fox" Panov @ Home | KDE at FreeBSD Team | FreeBSD since September 1995
Khabarovsk, Russia     | Skype:dima.panov | Jabber.org:fluffy.khv | ICQ:1745024



More information about the freebsd-ports-bugs mailing list