ports/77488: devel/p5-String-Ediff seg faults
Jonathan Noack
noackjr at alumni.rice.edu
Mon Feb 14 10:00:38 UTC 2005
>Number: 77488
>Category: ports
>Synopsis: devel/p5-String-Ediff seg faults
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Feb 14 10:00:37 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator: Jonathan Noack
>Release: FreeBSD 5.3-STABLE i386
>Organization:
Concordia Lutheran High School
>Environment:
System: FreeBSD optimator.noacks.org 5.3-STABLE FreeBSD 5.3-STABLE #6: Sun Feb 13 23:07:01 CST 2005 root at optimator.noacks.org:/usr/obj/usr/src/sys/OPTIMATOR i386
Ports: p5-String-Ediff-0.03
perl-5.8.6_2
>Description:
While tracking down a problem with devel/cvsweb3, I discovered
the issue was really that ediff was seg faulting. The attached test.pl
simulates a call to ediff in cvsweb that failed (this is merely one
example; I can provide many). I tested this on two different machines
with identical results. Please let me know if I can provide further
info.
Here's some info from gdb:
$ gdb /usr/local/bin/perl5.8.6 perl5.8.6.core
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd"...(no debugging symbols found)...
Core was generated by `perl5.8.6'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/local/lib/perl5/5.8.6/mach/CORE/libperl.so...done.
Loaded symbols for /usr/local/lib/perl5/5.8.6/mach/CORE/libperl.so
Reading symbols from /lib/libm.so.3...done.
Loaded symbols for /lib/libm.so.3
Reading symbols from /lib/libcrypt.so.2...done.
Loaded symbols for /lib/libcrypt.so.2
Reading symbols from /lib/libutil.so.4...done.
Loaded symbols for /lib/libutil.so.4
Reading symbols from /lib/libc.so.5...done.
Loaded symbols for /lib/libc.so.5
Reading symbols from /usr/local/lib/perl5/site_perl/5.8.6/mach/auto/String/Ediff/Ediff.so...done.
Loaded symbols for /usr/local/lib/perl5/site_perl/5.8.6/mach/auto/String/Ediff/Ediff.so
Reading symbols from /libexec/ld-elf.so.1...done.
Loaded symbols for /libexec/ld-elf.so.1
#0 ediff (s1=0x8054ba8 " * $Id$", s2=0x80680a8 " * $Header$") at st.c:747
747 ret[0] = 0;
(gdb) l 747
742 ix++;
743 tmp_seg = tmp_seg->m_next;
744 }
745 #define INT_LEN 11
746 ret = (char*)malloc(sizeof(char) * INT_LEN * ix * 8);
747 ret[0] = 0;
748 tmp_seg = equals;
749 while (tmp_seg) {
750 char buff[4 * INT_LEN + 1];
751 if (tmp_seg->m_begin_line_num1 < 0) {
(gdb) bt
#0 ediff (s1=0x8054ba8 " * $Id$", s2=0x80680a8 " * $Header$") at st.c:747
#1 0x282dbe2a in _wrap_ediff (cv=0x812d0f8) at st_wrap.c:562
#2 0x2810f88b in Perl_pp_entersub () at pp_hot.c:2890
#3 0x280f4c98 in Perl_runops_debug () at dump.c:1449
#4 0x280a5253 in S_run_body (oldscope=2048) at perl.c:1934
#5 0x280a4da2 in perl_run (my_perl=0x804d030) at perl.c:1853
#6 0x0804919d in main ()
>How-To-Repeat:
Run attached test.pl
>Fix:
*shrug*
--- test.pl begins here ---
#!/usr/bin/perl -wT
require String::Ediff;
my $left_diff = " * \$Id\$";
my $right_diff = " * \$Header\$";
my $diff_str = String::Ediff::ediff($left_diff, $right_diff);
printf "diff_str = $diff_str";
--- test.pl ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list