From nobody Sat May 7 00:06:17 2022 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id DB4D11AC365D; Sat, 7 May 2022 00:06:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Kw7555ZR8z4QyX; Sat, 7 May 2022 00:06:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1651881977; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OtA1h6RQ+wkXNUcOIO8/ji5Iri2cE95BwoYG7lHqLR0=; b=X7veyPm4Q2MpancpOPw7l5IFZf8MuMKLxH0PRRdfeF41Tt6qOgWzidYAq6OwDGuu6l4wdL yeaTuYSEU7rNtsPx1W8AoMPe+RVh19cdU730dvqgZ755LDTvGOvRq4uT6gw4cDYp2RoS+J FocSefuyDla+QI75Uw+Pk4T3NVK1qIRHD9+9wcopvQcIAjhRtSZcmUxaHep4KVNiPPzMYD Y3417ZnZ8y8OfnBCZyBvaSym8+9bXsFTKoR7NFaWFrXehvmV6+siGesKmm3XR9ezzkL0aU BzhUE5Ltt4j286QGsU5Kka1+QtORsbKMRRBx6vbM0g4k3LwlZjtKBg07XMe1pw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9884D25D84; Sat, 7 May 2022 00:06:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 24706Hkn031416; Sat, 7 May 2022 00:06:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 24706HNE031415; Sat, 7 May 2022 00:06:17 GMT (envelope-from git) Date: Sat, 7 May 2022 00:06:17 GMT Message-Id: <202205070006.24706HNE031415@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste Subject: git: 904c148f1c93 - main - libutil: eliminate one syscall from kinfo_getproc List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 904c148f1c939f080b9fad345b76caa8ccb6d03c Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1651881977; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OtA1h6RQ+wkXNUcOIO8/ji5Iri2cE95BwoYG7lHqLR0=; b=C7DHMr0TXAajjThAtk2/cZkfyS52/pUL9GhSOVpKEXAaV8358ea/S3+LX9Lw8gNTNsrALL Udxiw9kIkypHIBGtrXvuiP9LBXjXzSAUXbwYrvz1fkTmaCoAMwtDciEwK5D2SUn5IXgxS7 0gDGRVeAygEQqpMc17Rw+Rgvr1kYmG6CCIvagV8hd0pJn4O91EMZU6BrWtWZziZ8ymkvls 2REGPVC+KokUlOSDjU5qchGWX28Xr6S/16ZMsUmRGrXuSngv79G2UREd0zyAmvSl+wUTEP dqcGtjui3eA7WVM/LfKHLkXNMJ8sp7PGOM/684o+OIVml7pqb/dFVtoJVzV00w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1651881977; a=rsa-sha256; cv=none; b=Uax2f7BzfChogqfCA+ZpvxX2nD1205A2QrE2jFzlRPh26dlGwdfTEhtAWCnaC/Ab5it4pD 8MA5w3N3uKWqW3ehLy3AN+jMZTQMDmC0V+lwmQdNjmJBmmcOqxO4Tpq2vFTf+XjIeKAoHP r0EwJHEvXqRxQPFDu8PU6PIg7S1uphx+cus/NNJv/P3rNvf6HI0UifI7YCA49sFi74spqc 7dEUv0ZJs+LAZLIqqtpCDJSgpiQt/WHpF7MoFGksf5ZEXUl7OL3dhALCnnqnYnUGfQRce2 sQ6ij6oW9KQTETAk7bDdeEDiQFDj3G1VMBCesd/CmH3o6gFyL161MawqHwyLog== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=904c148f1c939f080b9fad345b76caa8ccb6d03c commit 904c148f1c939f080b9fad345b76caa8ccb6d03c Author: Ed Maste AuthorDate: 2022-05-06 16:41:04 +0000 Commit: Ed Maste CommitDate: 2022-05-07 00:06:09 +0000 libutil: eliminate one syscall from kinfo_getproc Previously we invoked the sysctl with a NULL buffer to query the size, allocated a buffer, then invoked it again to fetch the data. As we only handle the case where the sysctl provides data of the expected size we can just allocate a correctly-sized buffer to begin with. Reported by: Thomas Hurst via Twitter Reviewed by: kevans MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D35140 --- lib/libutil/kinfo_getproc.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/lib/libutil/kinfo_getproc.c b/lib/libutil/kinfo_getproc.c index 4d16b1c16a13..e34fdbdf18e8 100644 --- a/lib/libutil/kinfo_getproc.c +++ b/lib/libutil/kinfo_getproc.c @@ -46,17 +46,15 @@ kinfo_getproc(pid_t pid) int mib[4]; size_t len; - len = 0; + len = sizeof(*kipp); + kipp = malloc(len); + if (kipp == NULL) + return (NULL); + mib[0] = CTL_KERN; mib[1] = KERN_PROC; mib[2] = KERN_PROC_PID; mib[3] = pid; - if (sysctl(mib, nitems(mib), NULL, &len, NULL, 0) < 0) - return (NULL); - - kipp = malloc(len); - if (kipp == NULL) - return (NULL); if (sysctl(mib, nitems(mib), kipp, &len, NULL, 0) < 0) goto bad;