Crash after saving to a git repo

Lubomir I. Ivanov neolit123 at gmail.com
Mon Mar 31 08:56:28 PDT 2014


On 31 March 2014 15:50, Anton Lundin <glance at acc.umu.se> wrote:
> I managed to run the save step via valgrind and noticed:
>
> Invalid free() / delete / delete[] / realloc()
>    at 0x4C2B68C: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
>    by 0x5E0030D: set_error (in /usr/lib/x86_64-linux-gnu/libgit2.so.0.19.0)

upsteam set_error() has a safety check added in 96869a4ed, which could
be relevant but this is post 0.20.

if (error->message != string)
git__free(error->message);

it only calls free() if the message from the error struct is different
from the argument message.

>    by 0x5E0042F: giterr_set (in /usr/lib/x86_64-linux-gnu/libgit2.so.0.19.0)
>    by 0x5E1E348: git_futils_find_in_dirlist (in /usr/lib/x86_64-linux-gnu/libgit2.so.0.19.0)

git_futils_find_in_dirlist() is replaced in 83634d38b with
git_sysdir_find_in_dirlist(), and by moving the functions into a new
file.
it has a history of multiple changes, but i think the above
set_error() change, is the actual bugfix.

if that is the case 0.20 might be broken as well.

lubomir
--


More information about the subsurface mailing list