summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2019-01-16 14:43:53 -0500
committerNick Mathewson <nickm@torproject.org>2019-01-16 14:43:53 -0500
commit16430fdaf546cf8a2711a4c87380398bd4358d54 (patch)
tree76847ee4f6f0750b8bc357e70cbd358707e2db1e
parent2f683465d4b666c5d8f84fb3b234ad539d8511cd (diff)
parentf0408b844ffe2545c33306cb04b03fff8148989f (diff)
downloadtor-16430fdaf546cf8a2711a4c87380398bd4358d54.tar.gz
tor-16430fdaf546cf8a2711a4c87380398bd4358d54.zip
Merge branch 'maint-0.3.5'
-rw-r--r--changes/bug289815
-rw-r--r--src/lib/meminfo/meminfo.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/changes/bug28981 b/changes/bug28981
new file mode 100644
index 0000000000..c0ea92ab35
--- /dev/null
+++ b/changes/bug28981
@@ -0,0 +1,5 @@
+ o Minor bugfixes (misc):
+ - The amount of total available physical memory is now determined
+ using the sysctl identifier HW_PHYSMEM (rather than HW_USERMEM)
+ when it is defined and a 64-bit variant is not available. Fixes
+ bug 28981; bugfix on 0.2.5.4-alpha. Patch from Kris Katterjohn.
diff --git a/src/lib/meminfo/meminfo.c b/src/lib/meminfo/meminfo.c
index 790d698910..f233188897 100644
--- a/src/lib/meminfo/meminfo.c
+++ b/src/lib/meminfo/meminfo.c
@@ -60,7 +60,7 @@ tor_log_mallinfo(int severity)
ENABLE_GCC_WARNING(aggregate-return)
#if defined(HW_PHYSMEM64)
-/* This appears to be an OpenBSD thing */
+/* OpenBSD and NetBSD define this */
#define INT64_HW_MEM HW_PHYSMEM64
#elif defined(HW_MEMSIZE)
/* OSX defines this one */
@@ -115,7 +115,7 @@ get_total_system_memory_impl(void)
return ms.ullTotalPhys;
#elif defined(HAVE_SYSCTL) && defined(INT64_HW_MEM)
- /* On many systems, HW_PYHSMEM is clipped to 32 bits; let's use a better
+ /* On many systems, HW_PHYSMEM is clipped to 32 bits; let's use a better
* variant if we know about it. */
uint64_t memsize = 0;
size_t len = sizeof(memsize);
@@ -130,7 +130,7 @@ get_total_system_memory_impl(void)
* HW_PHYSMEM. */
size_t memsize=0;
size_t len = sizeof(memsize);
- int mib[2] = {CTL_HW, HW_USERMEM};
+ int mib[2] = {CTL_HW, HW_PHYSMEM};
if (sysctl(mib,2,&memsize,&len,NULL,0))
return 0;