*BSD News Article 88236


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!munnari.OZ.AU!news.mel.connect.com.au!news.mel.aone.net.au!grumpy.fl.net.au!news.webspan.net!www.nntp.primenet.com!nntp.primenet.com!news.mathworks.com!news.sprintlink.net!news-peer.sprintlink.net!news-pull.sprintlink.net!news.sprintlink.net!news-ana-7.sprintlink.net!news.aloha.net!news-w.ans.net!newsfeeds.ans.net!butch!lscruz!lscruz!not-for-mail
From: gary@lscruz.scf.lmms.lmco.com (Gary Liefer)
Newsgroups: comp.lang.perl.misc,comp.unix.bsd.bsdi.misc
Subject: Re: Perl 5.003 and BSD 2.1 (libwww-perl-5.0x)
Date: 2 Feb 1997 18:54:35 -0800
Organization: LMMS, Santa Cruz
Lines: 38
Message-ID: <5d3k1b$rqh$1@lscruz.scf.lmms.lmco.com>
References: <32ee65fc.336138651@news.charm.net>
NNTP-Posting-Host: lscruz.scf.lmms.lmco.com
Xref: euryale.cc.adfa.oz.au comp.lang.perl.misc:57867 comp.unix.bsd.bsdi.misc:5847

In article <32ee65fc.336138651@news.charm.net>,
Sean Rolinson <snowdog@charm.net> wrote:
>I've recently compiled perl5.003 and libwww-perl-5.06.  Both installed
>okay and testing fine, but when running GET, here is what message I
[ ... ]
>Bad free() ignored at /usr/local/lib/perl5/DynaLoader.pm line 140.
>Bad free() ignored at /usr/local/lib/perl5/DynaLoader.pm line 140.
[ ... ]
><H1>An Error Occurred</h1>
>501 - Can't load
>'/usr/local/lib/perl5/i386-bsdos/5.003/auto/Socket/Socket.o' for
>module Socket: can't resolve undefined symbols: Inappropriate file
>type or format.
[ ... ]
>Does anyone have any suggestions as to what might be causing the
>problem?  All the necessary modules have been installed and to the
>best of my knowledge (which is limited), GET should be working fine.

- I tracked this problem to the the BSDI dynamic load library (libdl.a).
The problem crops up when the executable is invoked without an absolute
path.  Function dlopen needs to read the symbol table but it has to search
for the a.out file.  The "Bad free()" error seems to occur when a different
version of perl (with the same name) is found somewhere in the path before
the one that's actually running.

- The "inappropriate file type" happens if the perl executable or any
of the link modules have been stripped (no symbol table).

- Setting the environment variable LD_LIBRARY_PATH appropriately seems
to be what's supposed to fix the problem.  I haven't actually tried this
myself though -- I just absolute-ized everything.

- Side note, Apache:  1.2b2 (anyhow) strips off the path before exec'ing
the CGI handler.  Is this good?  Some kind of security bollux?

-- 
-------------
Gary Liefer   gary@oetl1.scf.lmsc.lockheed.com