From 3898609ae24e7787d6f6ae71c2424b43102326bf Mon Sep 17 00:00:00 2001
From: Callum Prentice <callum@lindenlab.com>
Date: Tue, 11 May 2021 12:58:05 -0700
Subject: [PATCH] Fix for SL-15226 Simple cache viewer: Integer overflow in
 cache size - via FS:Ansariel

---
 indra/llfilesystem/lldiskcache.cpp | 2 +-
 indra/llfilesystem/lldiskcache.h   | 2 +-
 indra/newview/llappviewer.cpp      | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/indra/llfilesystem/lldiskcache.cpp b/indra/llfilesystem/lldiskcache.cpp
index c9f7684b5a6..241c46dc735 100644
--- a/indra/llfilesystem/lldiskcache.cpp
+++ b/indra/llfilesystem/lldiskcache.cpp
@@ -40,7 +40,7 @@
 #include "lldiskcache.h"
 
 LLDiskCache::LLDiskCache(const std::string cache_dir,
-                         const int max_size_bytes,
+                         const uintmax_t max_size_bytes,
                          const bool enable_cache_debug_info) :
     mCacheDir(cache_dir),
     mMaxSizeBytes(max_size_bytes),
diff --git a/indra/llfilesystem/lldiskcache.h b/indra/llfilesystem/lldiskcache.h
index 997884da319..c19714434a9 100644
--- a/indra/llfilesystem/lldiskcache.h
+++ b/indra/llfilesystem/lldiskcache.h
@@ -86,7 +86,7 @@ class LLDiskCache :
                      * The maximum size of the cache in bytes - Based on the
                      * setting at 'CacheSize' and 'DiskCachePercentOfTotal'
                      */
-                    const int max_size_bytes,
+                    const uintmax_t max_size_bytes,
                     /**
                      * A flag that enables extra cache debugging so that
                      * if there are bugs, we can ask uses to enable this
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index a3d20a8e2f2..c519e55fc34 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -4141,7 +4141,7 @@ bool LLAppViewer::initCache()
     const unsigned int cache_total_size_mb = gSavedSettings.getU32("CacheSize");
     const double disk_cache_percent = gSavedSettings.getF32("DiskCachePercentOfTotal");
     const unsigned int disk_cache_mb = cache_total_size_mb * disk_cache_percent / 100;
-    const unsigned int disk_cache_bytes = disk_cache_mb * 1024 * 1024;
+    const uintmax_t disk_cache_bytes = disk_cache_mb * 1024 * 1024;
 	const bool enable_cache_debug_info = gSavedSettings.getBOOL("EnableDiskCacheDebugInfo");
 
 	bool texture_cache_mismatch = false;
-- 
GitLab