From b08fa7e6d4b2eae22eef4931af86353274ef3945 Mon Sep 17 00:00:00 2001 From: William Brown Date: May 25 2016 23:17:41 +0000 Subject: Ticket 48846 - Older kernels do not expose memavailable Bug Description: Old kernels do not expose MemAvailable. As a result this would be 0, and would be the lowest value in the check. Fix Description: Check that our values for util_sys_pages is > 0 https://fedorahosted.org/389/ticket/48846 Author: wibrown Review by: nhosoi (Thanks!) --- diff --git a/ldap/servers/slapd/util.c b/ldap/servers/slapd/util.c index e7b02fa..070a7db 100644 --- a/ldap/servers/slapd/util.c +++ b/ldap/servers/slapd/util.c @@ -1670,15 +1670,15 @@ int util_info_sys_pages(size_t *pagesize, size_t *pages, size_t *procpages, size (unsigned long)*pages, (unsigned long)*availpages, (unsigned long)freesize); } - if (rlimsize != RLIM_INFINITY && rlimsize < freesize && rlimsize < *pages) { + if (rlimsize != RLIM_INFINITY && rlimsize < freesize && rlimsize < *pages && rlimsize > 0) { LDAPDebug(LDAP_DEBUG_TRACE,"util_info_sys_pages using getrlim for availpages \n",0,0,0); *availpages = rlimsize; - } else if (*pages < freesize) { - LDAPDebug(LDAP_DEBUG_TRACE,"util_info_sys_pages using pages for availpages \n",0,0,0); - *availpages = *pages; - } else { + } else if (freesize < *pages && freesize > 0) { LDAPDebug(LDAP_DEBUG_TRACE,"util_info_sys_pages using freesize for availpages \n",0,0,0); *availpages = freesize; + } else { + LDAPDebug(LDAP_DEBUG_TRACE,"util_info_sys_pages using pages for availpages \n",0,0,0); + *availpages = *pages; } }