Commit Diff


commit - 61c9f6dccc2e7adc4f58e71e02f61472b0cea060
commit + 720ad641959b227e8b26c4ac974cfd1e6670f44f
blob - dba2c6915def5cb7b6656dff90887025a60935eb
blob + adef4e516db7b524740a5a8192cc6d199d1d645a
--- lib/object_idcache.c
+++ lib/object_idcache.c
@@ -84,12 +84,8 @@ got_object_idcache_add(struct got_object_idcache *cach
 {
 	struct got_object_idcache_element *entry;
 
-	if (cache->nelem >= cache->maxelem) {
-		entry = TAILQ_LAST(&cache->entries, got_object_idcache_head);
-		TAILQ_REMOVE(&cache->entries, entry, entry);
-		free(entry);
-		cache->nelem--;
-	}
+	if (cache->nelem >= cache->maxelem)
+		return got_error(GOT_ERR_NO_SPACE);
 
 	entry = calloc(1, sizeof(*entry));
 	if (entry == NULL)