summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorMichael Drake <michael.drake@codethink.co.uk>2021-01-25 13:39:28 +0000
committerMichael Drake <michael.drake@codethink.co.uk>2021-01-25 13:39:28 +0000
commitda2aa05b730560024760a25dabc2078f578efd10 (patch)
tree369219c9dcc77a31783eb7bee66f5b1988c5b138 /desktop
parent98496cdae16a9196bff930fff52e198a9856e2cb (diff)
downloadnetsurf-da2aa05b730560024760a25dabc2078f578efd10.tar.gz
netsurf-da2aa05b730560024760a25dabc2078f578efd10.tar.bz2
Prevent overflow of disc cache hysteresis.
The default disc cache size is 1GB (1024 * 1024 * 1024). On systems with 32bit size_t, the hysteresis calculation, which multiplied 1GB by 20 would overflow, causing a zero hysteresis. (1024 * 1024 * 1024) * 20 % (2^32) = 0 Thanks to Jonas Amoson for reporting.
Diffstat (limited to 'desktop')
-rw-r--r--desktop/netsurf.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/desktop/netsurf.c b/desktop/netsurf.c
index 6cc3a118f..fd838b80b 100644
--- a/desktop/netsurf.c
+++ b/desktop/netsurf.c
@@ -155,10 +155,10 @@ nserror netsurf_init(const char *store_path)
hlcache_parameters.llcache.fetch_attempts = nsoption_uint(max_retried_fetches);
/* image cache is 25% of total memory cache size */
- image_cache_parameters.limit = (hlcache_parameters.llcache.limit * 25) / 100;
+ image_cache_parameters.limit = hlcache_parameters.llcache.limit / 4;
/* image cache hysteresis is 20% of the image cache size */
- image_cache_parameters.hysteresis = (image_cache_parameters.limit * 20) / 100;
+ image_cache_parameters.hysteresis = image_cache_parameters.limit / 5;
/* account for image cache use from total */
hlcache_parameters.llcache.limit -= image_cache_parameters.limit;
@@ -167,7 +167,7 @@ nserror netsurf_init(const char *store_path)
hlcache_parameters.llcache.store.limit = nsoption_uint(disc_cache_size);
/* set backing store hysterissi to 20% */
- hlcache_parameters.llcache.store.hysteresis = (hlcache_parameters.llcache.store.limit * 20) / 100;;
+ hlcache_parameters.llcache.store.hysteresis = hlcache_parameters.llcache.store.limit / 5;
/* set the path to the backing store */
hlcache_parameters.llcache.store.path =