struct resource_monitor_data {
unsigned int pid;
unsigned int ppid;
- unsigned int secs;
- unsigned int max;
+ int secs;
+ int max;
int mon_id;
int num_res;
g_data.ppid = atoi(argv[opt + 1]);
} else if (!strncmp(argv[opt], "-", 1)) {
for (i = 1; *(argv[opt] + i); i++) {
+ int input;
+
switch (*(argv[opt] + i)) {
case 'd':
- g_data.secs = atoi(argv[opt + 1]);
+ input = atoi(argv[opt + 1]);
+ if (input < 0 || input >= INT_MAX)
+ break;
+ g_data.secs = input;
break;
case 'n':
- g_data.max = atoi(argv[opt + 1]);
+ input = atoi(argv[opt + 1]);
+ if (input < 0 || input >= INT_MAX)
+ break;
+ g_data.max = input;
break;
case 'p':
g_data.pid = atoi(argv[opt + 1]);