Date: Fri, 11 Apr 2025 18:42:59 GMT From: Ed Maste <emaste@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 4b60fac3a5c7 - main - kinfo_getfile: Add a comment explaining 4/3 ratio Message-ID: <202504111842.53BIgxMK077123@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202504111842.53BIgxMK077123>