summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGrazvydas Ignotas <[email protected]>2017-03-09 02:54:53 +0200
committerTimothy Arceri <[email protected]>2017-03-09 20:26:30 +1100
commit61bbb25a080e48a8ca897ba7f6e73cc6a8e9b5b8 (patch)
tree84bfcb48159cc4d685e9f859f03415c0b17c4da4 /src
parent926bcacfd3f9025007455c026d44f810018cf787 (diff)
util/disk_cache: fix size subtraction on 32bit
Negating size_t on 32bit produces a 32bit result. This was effectively adding values close to UINT_MAX to the cache size (the files are usually small) instead of intended subtraction. Fixes 'make check' disk_cache failures on 32bit. Signed-off-by: Grazvydas Ignotas <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/util/disk_cache.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/util/disk_cache.c b/src/util/disk_cache.c
index 5470688df32..facdcecf7ca 100644
--- a/src/util/disk_cache.c
+++ b/src/util/disk_cache.c
@@ -603,7 +603,7 @@ evict_random_item(struct disk_cache *cache)
free(dir_path);
if (size) {
- p_atomic_add(cache->size, - size);
+ p_atomic_add(cache->size, - (uint64_t)size);
return;
}
@@ -624,7 +624,7 @@ evict_random_item(struct disk_cache *cache)
free(dir_path);
if (size)
- p_atomic_add(cache->size, - size);
+ p_atomic_add(cache->size, - (uint64_t)size);
}
void
@@ -646,7 +646,7 @@ disk_cache_remove(struct disk_cache *cache, const cache_key key)
free(filename);
if (sb.st_size)
- p_atomic_add(cache->size, - sb.st_size);
+ p_atomic_add(cache->size, - (uint64_t)sb.st_size);
}
/* From the zlib docs: