Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

git commit crashes the VM #5592

Closed
akgrant43 opened this issue Jan 30, 2020 · 0 comments · Fixed by pharo-vcs/libgit2-pharo-bindings#32
Closed

git commit crashes the VM #5592

akgrant43 opened this issue Jan 30, 2020 · 0 comments · Fixed by pharo-vcs/libgit2-pharo-bindings#32

Comments

@akgrant43
Copy link
Collaborator

akgrant43 commented Jan 30, 2020

LGitCommitBuilder>>commit_create:repo:update_ref:author:committer:message_encoding:message:tree:parent_count:parents: defines parent_count as an int, which is signed 32 bits.

As documented at https://libgit2.org/libgit2/#HEAD/group/commit/git_commit_create it is actually a size_t, which is unsigned 64 bits on a 64 bit platform.

In Squeak FFI this doesn't seem to matter, presumably it zero outs the top half when transferred as a 64 bit value, however Threaded FFI doesn't appear to do this. The result is that git commits will regularly crash the VM when using Threaded FFI.

Modify the function signature to use size_t.

PR on the way.

akgrant43 added a commit to akgrant43/libgit2-pharo-bindings that referenced this issue Jan 30, 2020
…sage_encoding:message:tree:parent_count:parents: parent_count

parent_count is currently defined as an int, which is signed 32 bits.

As documented at https://libgit2.org/libgit2/#HEAD/group/commit/git_commit_create it is actually a size_t, which is unsigned 64 bits on a 64 bit platform.

In Squeak FFI this doesn't seem to matter, presumably it zero outs the top half when transferred as a 64 bit value, however Threaded FFI doesn't appear to do this.  The result is that git commits will occasionally crash the VM when using Threaded FFI.

Modify the function signature to use size_t.

Fixes: pharo-project/pharo#5592
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant