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:
parent
b96c994390
commit
af0c65900b
@ -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 *'
|
* 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);
|
* my_stack = procps_meminfo_select(info, PROCPS_MEMINFO_noop, num);
|
||||||
* ^~~~~~~~~~~~~~~~
|
* ^~~~~~~~~~~~~~~~
|
||||||
*/
|
*/
|
||||||
if (numitems < 1
|
if (numitems < 1
|
||||||
|| (void *)items < (void *)(unsigned long)(2 * PROCPS_MEMINFO_logical_end))
|
|| (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;
|
time_t cur_secs;
|
||||||
int rc;
|
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
|
/* we will NOT read the meminfo file with every call - rather, we'll offer
|
||||||
a granularity of 1 second between reads ... */
|
a granularity of 1 second between reads ... */
|
||||||
cur_secs = time(NULL);
|
cur_secs = time(NULL);
|
||||||
|
Loading…
Reference in New Issue
Block a user