library: add parameter checks for 'get', <MEMINFO> api

When this interface was normalized/standardized, under
the commit referenced below, the parameters were never
validated in the 'get' function. Let's plug that hole.

Reference(s):
commit 407f1b71de

Signed-off-by: Jim Warner <james.warner@comcast.net>
This commit is contained in:
Jim Warner 2016-06-01 00:00:00 -05:00 committed by Craig Small
parent b96c994390
commit af0c65900b

View File

@ -548,7 +548,7 @@ static inline int items_check_failed (
*
* warning: incompatible integer to pointer conversion passing 'int' to parameter of type 'enum meminfo_item *'
* my_stack = procps_meminfo_select(info, PROCPS_MEMINFO_noop, num);
* ^~~~~~~~~~~~~~~~
* ^~~~~~~~~~~~~~~~
*/
if (numitems < 1
|| (void *)items < (void *)(unsigned long)(2 * PROCPS_MEMINFO_logical_end))
@ -951,6 +951,11 @@ PROCPS_EXPORT signed long procps_meminfo_get (
time_t cur_secs;
int rc;
if (info == NULL)
return -EINVAL;
if (item < 0 || item >= PROCPS_MEMINFO_logical_end)
return -EINVAL;
/* we will NOT read the meminfo file with every call - rather, we'll offer
a granularity of 1 second between reads ... */
cur_secs = time(NULL);