summaryrefslogtreecommitdiff
path: root/src/or/config.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/or/config.c')
-rw-r--r--src/or/config.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/or/config.c b/src/or/config.c
index ce7adbace6..53f2c768d0 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -4097,9 +4097,13 @@ have_enough_mem_for_dircache(const or_options_t *options, size_t total_mem,
char **msg)
{
*msg = NULL;
+ /* XXX We should possibly be looking at MaxMemInQueues here
+ * unconditionally. Or we should believe total_mem unconditionally. */
if (total_mem == 0) {
- if (get_total_system_memory(&total_mem) < 0)
- total_mem = options->MaxMemInQueues;
+ if (get_total_system_memory(&total_mem) < 0) {
+ total_mem = options->MaxMemInQueues >= SIZE_MAX ?
+ SIZE_MAX : options->MaxMemInQueues;
+ }
}
if (options->DirCache) {
if (total_mem < DIRCACHE_MIN_BANDWIDTH) {