summaryrefslogtreecommitdiff
path: root/src/refdb.c
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2013-05-04 15:16:55 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2013-05-11 11:20:37 +0200
commit51fc5e895d7655611431a0bdb76b9fd8499a9e1a (patch)
tree0283022040fdd80f065fa79519e01fca5c964da9 /src/refdb.c
parent69a3c766b6c6b9bbe2859bf8572c12b93a9d37c9 (diff)
downloadlibgit2-51fc5e895d7655611431a0bdb76b9fd8499a9e1a.tar.gz
Make sure the ref iterator works in an repo without physical presence
Diffstat (limited to 'src/refdb.c')
-rw-r--r--src/refdb.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/refdb.c b/src/refdb.c
index 73882e807..269234bfa 100644
--- a/src/refdb.c
+++ b/src/refdb.c
@@ -128,7 +128,11 @@ int git_refdb_iterator(git_reference_iterator **out, git_refdb *db)
{
git_reference_iterator *iter;
- /* FIXME: don't segfault when there is no backends */
+ if (!db->backend || !db->backend->iterator) {
+ giterr_set(GITERR_REFERENCE, "This backend doesn't support iterators");
+ return -1;
+ }
+
if (db->backend->iterator(&iter, db->backend) < 0) {
git__free(iter);
return -1;