git: 4b60fac3a5c7 - main - kinfo_getfile: Add a comment explaining 4/3 ratio
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 11 Apr 2025 18:42:59 UTC
The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=4b60fac3a5c7a53f6d1a4480f37eb906bbacf21b commit 4b60fac3a5c7a53f6d1a4480f37eb906bbacf21b Author: Ed Maste <emaste@FreeBSD.org> AuthorDate: 2025-04-11 18:37:39 +0000 Commit: Ed Maste <emaste@FreeBSD.org> CommitDate: 2025-04-11 18:42:44 +0000 kinfo_getfile: Add a comment explaining 4/3 ratio We first get the expected size of the data from the kern.proc.filedesc sysctl, allocate 4/3 of that size, and then fetch the data. Add a comment about the reason (the fd table may grow between the two calls). Sponsored by: The FreeBSD Foundation --- lib/libutil/kinfo_getfile.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/libutil/kinfo_getfile.c b/lib/libutil/kinfo_getfile.c index f1441bdf771a..345da657df81 100644 --- a/lib/libutil/kinfo_getfile.c +++ b/lib/libutil/kinfo_getfile.c @@ -27,6 +27,10 @@ kinfo_getfile(pid_t pid, int *cntp) error = sysctl(mib, nitems(mib), NULL, &len, NULL, 0); if (error) return (NULL); + /* + * Add extra space as the table may grow between requesting the size + * and fetching the data. + */ len = len * 4 / 3; buf = malloc(len); if (buf == NULL)