[cvsnt] cvs commit crashes with binary files

Michael Wojcik Michael.Wojcik at microfocus.com
Sun May 21 17:09:30 BST 2006


> From: cvsnt-bounces at cvsnt.org 
> [mailto:cvsnt-bounces at cvsnt.org] On Behalf Of Guillaume Dallaire
> Sent: Friday, 19 May, 2006 14:11
> 
> I got this error when commiting binary files :
> 
> Checking in a.gif;
> /tmp/repository/tests_cvsnt/a.gif,v  <--  a.gif
> *** glibc detected *** free(): invalid pointer: 0xb7ceadc7 ***
> cvs [commit aborted]: received abort signal

This was discussed on the list back in February.  See:

http://www.cvsnt.org/pipermail/cvsnt/2006-February/023745.html

There is probably a bug in the CVSNT server, possibly a duplicate free,
in some circumstances, which is triggering the automatic heap validation
code in newer versions of glibc.  (It's also possible that this is a bug
in some library that CVSNT calls, or in glibc itself, though that's less
likely.)

If this is, in fact, just a duplicate free, then with this version of
glibc it's probably safe to suppress the heap-error-abort behavior, as
described in the message linked to above.  glibc will still note that
the free is invalid and take no action.

However, the bug should be found and fixed, since it could produce a
corrupt repository file when running under C library implementations
that don't detect and suppress dup-free.

(There are other possible causes of this error, such as passing free a
pointer that used to point to a malloc'd area but was changed during
processing and now points inside it.  That's also a relatively common
error, though more so in C than in C++.)

-- 
Michael Wojcik
Principal Software Systems Developer, Micro Focus



More information about the cvsnt mailing list