diff --git a/src/libs/zbxsysinfo/openbsd/proc.c b/src/libs/zbxsysinfo/openbsd/proc.c index e09971ca..ca22b788 100644 --- a/src/libs/zbxsysinfo/openbsd/proc.c +++ b/src/libs/zbxsysinfo/openbsd/proc.c @@ -148,6 +148,12 @@ static int proc_argv(pid_t pid, char ***argv, size_t *argv_alloc, int *argc) size_t sz; int mib[4]; + zabbix_log(LOG_LEVEL_DEBUG, "[*] entered %s", __func__); + zabbix_log(LOG_LEVEL_DEBUG, "[*] argv: %p", argv); + zabbix_log(LOG_LEVEL_DEBUG, "[*] *argv: %p", *argv); + zabbix_log(LOG_LEVEL_DEBUG, "[*] argv_alloc: %p (%zu)", argv_alloc, *argv_alloc); + zabbix_log(LOG_LEVEL_DEBUG, "[*] argc: %p (%zu)", argc, *argc); + if (NULL == *argv) { *argv_alloc = ARGS_START_SIZE; @@ -177,6 +183,8 @@ retry: if (0 != sysctl(mib, 4, argc, &sz, NULL, 0)) return FAIL; + zabbix_log(LOG_LEVEL_DEBUG, "[*] leaving %s", __func__); + return SUCCEED; } @@ -185,6 +193,13 @@ static void collect_args(char **argv, int argc, char **args, size_t *args_alloc) int i; size_t args_offset = 0; + zabbix_log(LOG_LEVEL_DEBUG, "[*] entered %s", __func__); + zabbix_log(LOG_LEVEL_DEBUG, "[*] argv: %p", argv); + zabbix_log(LOG_LEVEL_DEBUG, "[*] *argv: %p", *argv); + zabbix_log(LOG_LEVEL_DEBUG, "[*] argc: %d", argc); + zabbix_log(LOG_LEVEL_DEBUG, "[*] args: %d", args); + zabbix_log(LOG_LEVEL_DEBUG, "[*] *args: %d", *args); + if (0 == *args_alloc) { *args_alloc = ARGS_START_SIZE; @@ -192,7 +207,11 @@ static void collect_args(char **argv, int argc, char **args, size_t *args_alloc) } for (i = 0; i < argc; i++) + { + zabbix_log(LOG_LEVEL_DEBUG, "[*] procloop iter: %d", i); + zbx_snprintf_alloc(args, args_alloc, &args_offset, "%s ", argv[i]); + } if (0 != args_offset) args_offset--; /* ' ' */ @@ -399,9 +418,14 @@ int PROC_NUM(AGENT_REQUEST *request, AGENT_RESULT *result) return SYSINFO_RET_FAIL; } + zabbix_log(LOG_LEVEL_DEBUG, "[*] Parameter count validated"); + procname = get_rparam(request, 0); param = get_rparam(request, 1); + zabbix_log(LOG_LEVEL_DEBUG, "[*] name: %p", procname); + zabbix_log(LOG_LEVEL_DEBUG, "[*] user: %p", param); + if (NULL != param && '\0' != *param) { errno = 0; @@ -441,8 +465,12 @@ int PROC_NUM(AGENT_REQUEST *request, AGENT_RESULT *result) return SYSINFO_RET_FAIL; } + zabbix_log(LOG_LEVEL_DEBUG, "[*] state: %p", param); + proccomm = get_rparam(request, 3); + zabbix_log(LOG_LEVEL_DEBUG, "[*] cmdline: %p", proccomm); + if (1 == invalid_user) /* handle 0 for non-existent user after all parameters have been parsed and validated */ goto out; @@ -564,6 +592,8 @@ int PROC_NUM(AGENT_REQUEST *request, AGENT_RESULT *result) out: SET_UI64_RESULT(result, proccount); + zabbix_log(LOG_LEVEL_DEBUG, "[*] leaving %s", __func__); + return SYSINFO_RET_OK; }