libgit2 / php-git

PHP bindings for libgit2
http://libgit2.github.com
MIT License
565 stars 118 forks source link

Crash in git_transport_register #82

Open MagicalTux opened 9 years ago

MagicalTux commented 9 years ago

git_transport_register will register a callback, then free said callback before returning, resulting in a crash when said callback is to be used.

This patch removes the call to php_git2_cb_free(), and also implements a new helper php_git2_cb_init_copy() that will duplicate fci/fcc (to be freed in php_git2_cb_free if needed).

Ideally we should also free the callback in the unregister method - but considering most transports are likely to survive until the end of execution of the script that might have a lower priority.