| 2047 | } |
| 2048 | |
| 2049 | int |
| 2050 | proc_getauxv(struct thread *td, struct proc *p, struct sbuf *sb) |
| 2051 | { |
| 2052 | size_t vsize, size; |
| 2053 | char **auxv; |
| 2054 | int error; |
| 2055 | |
| 2056 | error = get_proc_vector(td, p, &auxv, &vsize, PROC_AUX); |
| 2057 | if (error == 0) { |
| 2058 | #ifdef COMPAT_FREEBSD32 |
| 2059 | if (SV_PROC_FLAG(p, SV_ILP32) != 0) |
| 2060 | size = vsize * sizeof(Elf32_Auxinfo); |
| 2061 | else |
| 2062 | #endif |
| 2063 | size = vsize * sizeof(Elf_Auxinfo); |
| 2064 | if (sbuf_bcat(sb, auxv, size) != 0) |
| 2065 | error = ENOMEM; |
| 2066 | free(auxv, M_TEMP); |
| 2067 | } |
| 2068 | return (error); |
| 2069 | } |
| 2070 | |
| 2071 | /* |
| 2072 | * This sysctl allows a process to retrieve the argument list or process |
no test coverage detected