On 2011-07-04 14:44, Andreas Weber wrote: > [...] > andy@PhenomBabe:~/src/build_octave$ checkinstall > ... > /home/andy/src/build_octave/libtool: line 8970: 4125 Segmentation fault > ccache g++ -fPIC -DPIC -shared -nostdlib > [...] > This looks like ccache causes a segfault. I have reproduced this on > different machines over the last 4 months.
I have now also reproduced the segfault. There's a bug in checkinstall's installwatch wrapper that triggers a bug in ccache. More specifically, checkinstall calls installwatch to run a command whose file system accesses are to be watched, and this is done by preloading installwatch.so, which wraps a number of functions. The wrapped getcwd(buffer, size) function copies the result to the buffer but returns a pointer to an internally allocated buffer (and leaks the memory, by the way), which works for callers that do this: char buffer[MAXPATHLEN]; if (!getcwd(buffer, sizeof(buffer)) { /* Failure */ } But not for callers that do this: char buffer[MAXPATHLEN]; if (getcwd(buffer, sizeof(buffer) != buffer) { /* Failure */ } (getcwd is specified to return the buffer pointer on success, so both versions are valid.) ccache does the latter, and then fails to handle the failed getcwd call correctly. I'll include a fix in ccache 3.1.6. -- Joel _______________________________________________ ccache mailing list ccache@lists.samba.org https://lists.samba.org/mailman/listinfo/ccache