Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Mar 2006 12:27:35 -0800
From:      Jason Evans <jasone@FreeBSD.org>
To:        GeX <gexlie@gmail.com>
Cc:        freebsd-current@freebsd.org
Subject:   Re: centericq in -current
Message-ID:  <4415D5B7.8000807@FreeBSD.org>
In-Reply-To: <53cc795f0603130945g3462111fvb0747dfa1ce58f18@mail.gmail.com>
References:  <53cc795f0603130945g3462111fvb0747dfa1ce58f18@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
GeX wrote:
> i have a problem with using of the centericq.
> problem appeared after upgrade of my box from 6.1-pre to 7.0-current:
> 
> zsh: segmentation fault (core dumped)  *centericq*
> 
> (gdb) bt
> #0  0x285e18d7 in reallocf () from /lib/libc.so.6
> #1  0x285e39fe in free () from /lib/libc.so.6
> #2  0x282b2811 in operator delete () from /usr/lib/libstdc++.so.5
> #3  0x0813ced0 in __gnu_cxx::operator==<char const*, std::string> ()
> #4  0x080ffb1b in std::operator+<char, std::char_traits<char>,
> std::allocator<char> > ()
> #5  0x080fd413 in std::operator+<char, std::char_traits<char>,
> std::allocator<char> > ()
> #6  0x08138cd2 in __gnu_cxx::operator==<char const*, std::string> ()
> #7  0x08138c96 in __gnu_cxx::operator==<char const*, std::string> ()
> #8  0x081387ae in __gnu_cxx::operator==<char const*, std::string> ()
> #9  0x08146896 in
> std::string::_S_construct<__gnu_cxx::__normal_iterator<char*,
> std::string> > ()
> #10 0x080ecf20 in std::operator+<char, std::char_traits<char>,
> std::allocator<char> > ()
> #11 0x080fd15b in std::operator+<char, std::char_traits<char>,
> std::allocator<char> > ()
> #12 0x286241ba in __cxa_finalize () from /lib/libc.so.6
> #13 0x285e4206 in exit () from /lib/libc.so.6
> #14 0x080b47ae in std::operator+<char, std::char_traits<char>,
> std::allocator<char> > ()
> #15 0x080eb26c in std::operator+<char, std::char_traits<char>,
> std::allocator<char> > ()
> #16 0x0804d522 in ?? ()
> #17 0x00000002 in ?? ()
> #18 0xbfbfec08 in ?? ()
> #19 0xbfbfec14 in ?? ()
> #20 0x081ddbb4 in __progname ()
> #21 0x081c4580 in std::setfill<char> ()
> #22 0x00000002 in ?? ()

This is likely due to the application corrupting memory by over-running 
a malloc buffer.  You could potentially detect this by increasing the 
size of redzones in /usr/src/lib/libc/stdlib/malloc.c (increase 
MALLOC_RED_2POW), then running centericq with the custom libc.

	<Edit /usr/src/lib/libc/stdlib/malloc.c.>
	cd /usr/src/lib/libc
	make
	LD_PRELOAD=/usr/obj/usr/src/lib/libc/libc.so.6 centericq

You probably don't want to install the modified libc, since the extra 
memory requirements of the large redzones could swamp your system.

Jason



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4415D5B7.8000807>