diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/kern/imgact_elf.c | 3 | ||||
-rw-r--r-- | sys/sys/procfs.h | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/sys/kern/imgact_elf.c b/sys/kern/imgact_elf.c index 8cf2e24..ff18d0e 100644 --- a/sys/kern/imgact_elf.c +++ b/sys/kern/imgact_elf.c @@ -919,7 +919,8 @@ elf_corehdr(p, vp, cred, numsegs, hdr, hdrsize) bzero(&psinfo, sizeof psinfo); psinfo.pr_version = PRPSINFO_VERSION; psinfo.pr_psinfosz = sizeof(prpsinfo_t); - strncpy(psinfo.pr_fname, p->p_comm, MAXCOMLEN); + strncpy(psinfo.pr_fname, p->p_comm, sizeof(psinfo.pr_fname) - 1); + psinfo.pr_fname[sizeof(psinfo.pr_fname) - 1] = '\0'; /* XXX - We don't fill in the command line arguments properly yet. */ strncpy(psinfo.pr_psargs, p->p_comm, PRARGSZ); diff --git a/sys/sys/procfs.h b/sys/sys/procfs.h index 04f0e1c..a7d49c1 100644 --- a/sys/sys/procfs.h +++ b/sys/sys/procfs.h @@ -67,6 +67,7 @@ typedef struct prstatus { typedef fpregset_t prfpregset_t; +#define PRFNAMESZ 16 /* Maximum command length saved */ #define PRARGSZ 80 /* Maximum argument bytes saved */ #define PRPSINFO_VERSION 1 /* Current version of prpsinfo_t */ @@ -74,7 +75,7 @@ typedef fpregset_t prfpregset_t; typedef struct prpsinfo { int pr_version; /* Version number of struct (1) */ size_t pr_psinfosz; /* sizeof(prpsinfo_t) (1) */ - char pr_fname[MAXCOMLEN+1]; /* Command name, null terminated (1) */ + char pr_fname[PRFNAMESZ+1]; /* Command name, null terminated (1) */ char pr_psargs[PRARGSZ+1]; /* Arguments, null terminated (1) */ } prpsinfo_t; |