Merge pull request #9 from carlosmn/nil-oid
Oid: make sure not to dereference a NULL git_oid
This commit is contained in:
commit
78d105f862
4
git.go
4
git.go
|
@ -26,6 +26,10 @@ type Oid struct {
|
|||
}
|
||||
|
||||
func newOidFromC(coid *C.git_oid) *Oid {
|
||||
if coid == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
oid := new(Oid)
|
||||
copy(oid.bytes[0:20], C.GoBytes(unsafe.Pointer(coid), 20))
|
||||
return oid
|
||||
|
|
|
@ -43,10 +43,22 @@ func TestRefModification(t *testing.T) {
|
|||
checkFatal(t, err)
|
||||
checkRefType(t, ref, SYMBOLIC)
|
||||
|
||||
if target := ref.Target(); target != nil {
|
||||
t.Fatalf("Expected nil *Oid, got %v", target)
|
||||
}
|
||||
|
||||
ref, err = ref.Resolve()
|
||||
checkFatal(t, err)
|
||||
checkRefType(t, ref, OID)
|
||||
|
||||
if target := ref.Target(); target == nil {
|
||||
t.Fatalf("Expected valid target got nil")
|
||||
}
|
||||
|
||||
if target := ref.SymbolicTarget(); target != "" {
|
||||
t.Fatalf("Expected empty string, got %v", target)
|
||||
}
|
||||
|
||||
if commitId.String() != ref.Target().String() {
|
||||
t.Fatalf("Wrong ref target")
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue