From af0c65900bedbc659ffd2dbb7b45ecddd083ba9f Mon Sep 17 00:00:00 2001 From: Jim Warner Date: Wed, 1 Jun 2016 00:00:00 -0500 Subject: [PATCH] library: add parameter checks for 'get', 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 407f1b71de3c4baed23d897b86ad316b64ad1ec9 Signed-off-by: Jim Warner --- proc/meminfo.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/proc/meminfo.c b/proc/meminfo.c index 36a48a64..3e7064be 100644 --- a/proc/meminfo.c +++ b/proc/meminfo.c @@ -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); -- 2.40.0