Commit 720ad641959b227e8b26c4ac974cfd1e6670f44f

Stefan Sperling 2018-07-23T13:40:13

don't remove cached elements in got_object_idcache_add()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
diff --git a/lib/object_idcache.c b/lib/object_idcache.c
index dba2c69..adef4e5 100644
--- a/lib/object_idcache.c
+++ b/lib/object_idcache.c
@@ -84,12 +84,8 @@ got_object_idcache_add(struct got_object_idcache *cache,
 {
 	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)