Subject: port-amd64/26416: latest strcat.S rev 1.3 make some programs crash with electricfence
To: None <gnats-bugs@gnats.NetBSD.org>
From: None <njoly@pasteur.fr>
List: netbsd-bugs
Date: 07/23/2004 18:41:45
>Number:         26416
>Category:       port-amd64
>Synopsis:       latest strcat.S rev 1.3 make some programs crash with electricfence
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    port-amd64-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Jul 23 16:42:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     Nicolas Joly
>Release:        NetBSD 2.0G (-current 20040723)
>Organization:
	Institut Pasteur
>Environment:
System: NetBSD lanfeust.sis.pasteur.fr 2.0G NetBSD 2.0G (LANFEUST) #8: Fri Jul 23 10:09:26 CEST 2004 njoly@lanfeust.sis.pasteur.fr:/local/src/NetBSD/obj/amd64/sys/arch/amd64/compile/LANFEUST amd64
Architecture: x86_64
Machine: amd64
>Description:
While running some programs under electricfence (pkgsrc 2.0.5, manually
installed 2.2.0) control, i noticed some unexpected crashes. gdb only
report a `strcat' call, without a backtrace. The same program, works fine
on -current alpha and i386 + electricfence.

njoly@lanfeust [~/squizz]> ~/squizz-0.99/src/squizz -c fasta mini.seq

  Electric Fence 2.0.5 Copyright (C) 1987-1998 Bruce Perens.
mini.seq: SWISSPROT format.
zsh: segmentation fault (core dumped)  ~/squizz-0.99/src/squizz -c fasta mini.seq
njoly@lanfeust [~/squizz]> gdb ~/squizz-0.99/src/squizz squizz.core 
GNU gdb 5.3nb1
Copyright 2002 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 "x86_64--netbsd"...
Core was generated by `squizz'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/libexec/ld.elf_so...done.
Loaded symbols for /usr/libexec/ld.elf_so
Reading symbols from /usr/lib/libc.so.12...done.
Loaded symbols for /usr/lib/libc.so.12
#0  0x000000004088c333 in strcat () from /usr/lib/libc.so.12
(gdb) bt
#0  0x000000004088c333 in strcat () from /usr/lib/libc.so.12

Reverting `strcat.S' to rev 1.2 seems to solves this problem.

njoly@lanfeust [~/squizz]> ident /lib/libc.so.12.122 | grep strcat
     $NetBSD: strcat.S,v 1.3 2004/07/19 20:04:41 drochner Exp $
njoly@lanfeust [~/squizz]> ident /lib/libc.so.12.120 | grep strcat
     $NetBSD: strcat.S,v 1.2 2003/07/26 19:24:39 salo Exp $

njoly@lanfeust [~/squizz]> LD_PRELOAD=/lib/libc.so.12.120 ~/squizz-0.99/src/squizz -c fasta mini.seq

  Electric Fence 2.0.5 Copyright (C) 1987-1998 Bruce Perens.
mini.seq: SWISSPROT format.
>How-To-Repeat:
Try to run some programs with electricfence, and latest libc.
>Fix:
Don't know.
>Release-Note:
>Audit-Trail:
>Unformatted:
 >104K_THEPA 104 kDa microneme-rhoptry antigen
 MKFLILLFNILCLFPVLAADNHGVGPQGASGVDPITFDINSNQTGPAFLTAVEMAGVKYLQVQHGSNVNIHRLVEGNVVI
 WENASTPLYTGAIVTNNDGPYMAYVEVLGDPNLQFFIKSGDAWVTLSEHEYLAKLQEIRQAVHIESVFSLNMAFQLENNK
 YEVETHAKNGANMVTFIPRNGHICKMVYHKNVRIYKATGNDTVTSVVGFFRGLRLLLINVFSIDDNGMMSNRYFQHVDDK
 YVPISQKNYETGIVKLKDYKHAYHPVDLDIKDIDYTMFHLADATYHEPCFKIIPNTGFCITKLFDGDQVLYESFNPLIHC
 INEVHIYDRNNGSIICLHLNYSPPSYKAYLVLKDTGWEATTHPLLEEKIEELQDQRACELDVNFISDKDLYVAALTNADL
 NYTMVTPRPHRDVIRVSDGSEVLWYYEGLDNFLVCAWIYVSDGVASLVHLRIKDRIPANNDIYVLKGDLYWTRITKIQFT
 QEIKRLVKKSKKKLAPITEEDSDKHDEPPEGPGASGLPPKAPGDKEGSEGHKGPSKGSDSSKEGKKPGSGKKPGPAREHK
 PSKIPTLSKKPSGPKDPKHPRDPKEPRKSKSPRTASPTRRPSPKLPQLSKLPKSTSPRSPPPPTRPSSPERPEGTKIIKT
 SKPPSPKPPFDPSFKEKFYDDYSKAASRSKETKTTVVLDESFESILKETLPETPGTPFTTPRPVPPKRPRTPESPFEPPK
 DPDSPSTSPSEFFTPPESKRTRFHETPADTPLPDVTAELFKEPDVTAETKSPDEAMKRPRSPSEYEDTSPGDYPSLPMKR
 HRLERLRLTTTEMETDPGRMAKDASGKPVKLKRSKSFDDLTTVELAPEPKASRIVVDDEGTEADDEETHPPEERQKTEVR
 RRRPPKKPSKSPRPSKPKKPKKPDSAYIPSILAILVVSLIVGIL
 >108_LYCES Protein 108 precursor
 MASVKSSSSSSSSSFISLLLLILLVIVLQSQVIECQPQQSCTASLTGLNVCAPFLVPGSPTASTECCNAVQSINHDCMCN
 TMRIAAQIPAQCNLPPLSCSAN