Skip to content

Commit baf411e

Browse files
committed
refdb: ensure all mandatory functions are provided at setup time
1 parent c2cf984 commit baf411e

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/refdb.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,16 @@ int git_refdb_set_backend(git_refdb *db, git_refdb_backend *backend)
6868
{
6969
GIT_ERROR_CHECK_VERSION(backend, GIT_REFDB_BACKEND_VERSION, "git_refdb_backend");
7070

71+
if (!backend->exists || !backend->lookup || !backend->iterator ||
72+
!backend->write || !backend->rename || !backend->del ||
73+
!backend->has_log || !backend->ensure_log || !backend->free ||
74+
!backend->reflog_read || !backend->reflog_write ||
75+
!backend->reflog_rename || !backend->reflog_delete ||
76+
(backend->lock && !backend->unlock)) {
77+
git_error_set(GIT_ERROR_REFERENCE, "incomplete refdb backend implementation");
78+
return GIT_EINVALID;
79+
}
80+
7181
refdb_free_backend(db);
7282
db->backend = backend;
7383

0 commit comments

Comments
 (0)