Support LQ: Use code LQ3 and save $3 on Domain Registration
Go Back > Forums > Non-*NIX Forums > Programming
User Name
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.


  Search this Thread
Old 02-26-2010, 07:38 AM   #1
LQ Newbie
Registered: Dec 2009
Posts: 14

Rep: Reputation: 0
*** glibc detected *** free(): invalid next size

(Developer environment: CentOS 4.7, KDevelop 3.1.1, gcc 3.4.5)

I created a c++ shared library and a test executable that uses this shared library. Things work fine.

But when I load this library through Java ie Java calls JNI which in turn loads this shared library, there is an error which states "*** glibc detected *** free(): invalid next size". The application exits after this. This error comes during loading phase of shared library.

Can anyone suggest what might be the possible reason for this?

I am using Java version 1.6.0_17 (build 1.6.0_17-b04). Could there a compatibility issue between this version and the C/C++ runtime libraries?

[Doing rpm -q shows glibc version on my machine as glibc-2.3.4-2.41 and libstdc++ version as libstdc++-3.4.6-10
ldd of shared library shows the following, => /lib/tls/ (0x00173000) => /lib/ (0x00286000) => /usr/lib/ (0x00185000) => /lib/tls/ (0x00111000) => /lib/ (0x00134000) => /lib/tls/ (0x002ba000)
/lib/ (0x008a4000) => /usr/lib/ (0x00785000) => /usr/lib/ (0x003e9000) => /lib/ (0x0013e000) => /usr/lib/ (0x006ae000) => /lib/ (0x00672000) => /lib/ (0x0044e000) => /lib/ (0x00540000) => /usr/lib/ (0x00141000)
Old 02-27-2010, 01:08 AM   #2
LQ Guru
Registered: Mar 2004
Distribution: SusE 8.2
Posts: 5,863
Blog Entries: 1

Rep: Reputation: Disabled
JNI is a real pain. If you can avoid it, do so.

If you must use JNI, then do this:

1. Code a simple JNI "hello world" first. Do *not* try to implement a full-blown library until you can reliably call C and pass a single value back and forth between Java and C.

2. Make sure you're using C - not C++. All of your C routines should be marked "extern "C" {}".

3. Try to minimize (or better: avoid altogether!) any use of C standard library (or worse, C++ standard library!) functions in your JNI methods.

'Hope that helps .. PSM

Your Java sounds OK.

I presume you're using Sun Java (and not GJC or something like that).

Beware: sometimes alternate Java implementations are installed by default ... you might be calling the wrong JRE and not even know it!


c++, centos, java, linux

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
Getting *** glibc detected *** free(): invalid next size (normal): herat.acharya Programming 3 10-23-2009 03:50 AM
*** glibc detected *** free(): invalid next size (normal): 0x0000000000503e70 *** vbreddy Programming 2 04-10-2006 06:27 PM
*** glibc detected *** free(): invalid next size (normal): 0x0804c050 *** water&sky Linux - General 2 03-03-2006 12:25 PM
*** glibc detected *** free(): invalid next size (normal): 0x0804c050 *** water&sky Linux - Software 1 03-02-2006 08:23 AM

All times are GMT -5. The time now is 03:48 PM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration