fix-freebsd.diff 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. diff --git a/src/freebsd/process.c b/src/freebsd/process.c
  2. index dee0f76..90e65a5 100644
  3. --- a/src/freebsd/process.c
  4. +++ b/src/freebsd/process.c
  5. @@ -184,7 +184,7 @@ LM_GetCommandLine(lm_process_t *process)
  6. ps = procstat_open_sysctl();
  7. if (!ps)
  8. - return result;
  9. + return cmdargs;
  10. proc = procstat_getprocs(ps, KERN_PROC_PID, process->pid, &nprocs);
  11. if (!proc)
  12. diff --git a/src/freebsd/utils.c b/src/freebsd/utils.c
  13. index 86c80a1..b3c6a81 100644
  14. --- a/src/freebsd/utils.c
  15. +++ b/src/freebsd/utils.c
  16. @@ -21,6 +21,7 @@
  17. */
  18. #include "utils.h"
  19. +#include <string.h>
  20. #include <assert.h>
  21. lm_time_t
  22. @@ -43,7 +44,7 @@ get_process_cmdline(struct procstat *procstat, struct kinfo_proc *proc)
  23. char **args;
  24. size_t size;
  25. - args = procstat_getargv(procstat, kipp, 0);
  26. + args = procstat_getargv(procstat, proc, 0);
  27. buf = calloc(sizeof(lm_char_t), length + sizeof(proc->ki_comm) + 1);
  28. if (!buf)
  29. @@ -62,7 +63,7 @@ get_process_cmdline(struct procstat *procstat, struct kinfo_proc *proc)
  30. for (i = 0; args[i] != NULL; ++i) {
  31. size = strlen(args[i]) + 1; // we will include the null term
  32. ptr = buf;
  33. - buf = realloc(buf, (length + size) * sizeof(lm_char_t))
  34. + buf = realloc(buf, (length + size) * sizeof(lm_char_t));
  35. if (!buf) {
  36. free(ptr);
  37. return NULL;