Change 17763 by [EMAIL PROTECTED] on 2002/08/23 12:23:31

        #17747 caused bad free()s with PERL_DESTRUCT by calling newXS()
        with a NULL subaddr. Fix that, and stop it happening again.

Affected files ...

.... //depot/perl/op.c#512 edit
.... //depot/perl/universal.c#55 edit

Differences ...

==== //depot/perl/op.c#512 (text) ====
Index: perl/op.c
--- perl/op.c#511~17725~        Fri Aug 16 17:51:19 2002
+++ perl/op.c   Fri Aug 23 05:23:31 2002
@@ -5217,6 +5217,9 @@
                        GV_ADDMULTI, SVt_PVCV);
     register CV *cv;
 
+    if (!subaddr)
+       Perl_croak(aTHX_ "panic: no address for '%s' in '%s'", name, filename);
+
     if ((cv = (name ? GvCV(gv) : Nullcv))) {
        if (GvCVGEN(gv)) {
            /* just a cached method */

==== //depot/perl/universal.c#55 (text) ====
Index: perl/universal.c
--- perl/universal.c#54~17762~  Fri Aug 23 04:02:35 2002
+++ perl/universal.c    Fri Aug 23 05:23:31 2002
@@ -192,7 +192,6 @@
        sv_inc(sv);
        SvSETMAGIC(sv);
        /* Make it findable via fetchmethod */
-       newXS("version::()", NULL, file);
        newXS("version::new", XS_version_new, file);
        newXS("version::(\"\"", XS_version_stringify, file);
        newXS("version::stringify", XS_version_stringify, file);
End of Patch.

Reply via email to