From nobody Tue Feb 27 06:43:00 2024 X-Original-To: dev-commits-src-main@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 4TkSbm6Z6Rz5CZpB; Tue, 27 Feb 2024 06:43:00 +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 4TkSbm5cVgz4TNK; Tue, 27 Feb 2024 06:43:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1709016180; 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=ByypU4Nk1p/18UtF5C3sWtdaVtNVqwlibQqh4+b1r9U=; b=E+A0gwhUdVA6NlgCbHsCDO+S+ZIgKjUo8aNAB7ZeSj3M3rYM+I0DtsbqGI/aDp2U34PtvG sLuxJM/tpxiSaNmiCzFPfzgibedx3val1IIzlNRS0BYHohC50FRI2ui7r6no96+Rjp2Sj6 0d/oaXj130V/MbUvgn2l7SdtxQPI+81BFyxOv1KY9PeR4MZ38y5sCZlnDaQVmSWJAPlORp 5qqiAUbXqv04BeNjYwUpa85xQQNnrzcO1dxd9z2LTpEToSqoZ75faTCn1h9PepJ4SRv9aY UEa3GdbrwxWMIypNv2zhyYlRwMZ9HsU1rl44zyVEjpjsZQcmM+CVIhhdO3yx/g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1709016180; a=rsa-sha256; cv=none; b=EXQsn3SYC25p7RZH43mKH1Jw71vCcuNp+BbK5jvhJtYFRu5D7G2Bi6RXnvc9Ey8t/+R8lY ui4HMDf4/ZvlpaVEL7N78yfF0IOnlZLx29uVtE7+yx7864nkf/9f4vQ/99k+SegTTEjYPv tDw/ub4zFnd/OU/e7rvcRagpsT2ALGR3b/+KNj3XC5ggcjR05lRHpuhMuwXlVjEAdVXV2B xXD3SMaZKoBTQBH+1I3qSs5nnfprXWamx8Opy7sfUoVWOuKgdVxH3Bjyg6QNUNldaTd8wy po+u9Jh3jKLefa7qWRKPXwWTwpCm2vRxsf4HYQQDv43HxlQ5tdCdFrBN0X3HtQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1709016180; 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=ByypU4Nk1p/18UtF5C3sWtdaVtNVqwlibQqh4+b1r9U=; b=K88ZB3q/V+HIqaEtg7Iekwm+3Orsyro+UpWOOkTOLBRjZnUT7WjlUTJt1dkp4ApLYVspL+ TyqTaB4865LrMNYToGO8rYRu1XRM3qqbETyBs0rH4LAHFA77lYPiP03LxthVNiLduHs5RQ gnXw1qToIii6TDl0Dl/8VJqKV4UqJLYNBFVE37DorF9fEngJRVxbKG/PzNDP6rZ9Yt++02 ycBGJsV2yydtov6PSmzUXLmg95+f+6G+4WTt7tzJlSEqmYx/pKh7I9UqCqt8e8ywqPf04x aeMay9x6fJZ2eZ7ehUHYZg67RQghOql0VdzvIN6FDX3z03mRhHvPPVTUbie+Gg== 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 4TkSbm4kMWz11XM; Tue, 27 Feb 2024 06:43:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 41R6h0FD074305; Tue, 27 Feb 2024 06:43:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 41R6h0XM074302; Tue, 27 Feb 2024 06:43:00 GMT (envelope-from git) Date: Tue, 27 Feb 2024 06:43:00 GMT Message-Id: <202402270643.41R6h0XM074302@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Emmanuel Vadot Subject: git: 2d2950c88933 - main - pam_xdg: Check asprintf return value List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: manu X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2d2950c889335b24af7a92f3aaf9946de47bb0bc Auto-Submitted: auto-generated The branch main has been updated by manu: URL: https://cgit.FreeBSD.org/src/commit/?id=2d2950c889335b24af7a92f3aaf9946de47bb0bc commit 2d2950c889335b24af7a92f3aaf9946de47bb0bc Author: Emmanuel Vadot AuthorDate: 2024-02-27 06:41:59 +0000 Commit: Emmanuel Vadot CommitDate: 2024-02-27 06:42:47 +0000 pam_xdg: Check asprintf return value Reported by: Shawn Webb Sponsored by: Beckhoff Automation GmbH & Co. KG Fixes: 6e69612d5df1 ("pam: Add pam_xdg module") --- lib/libpam/modules/pam_xdg/pam_xdg.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/libpam/modules/pam_xdg/pam_xdg.c b/lib/libpam/modules/pam_xdg/pam_xdg.c index d218bc0425f2..d8ba6899da2f 100644 --- a/lib/libpam/modules/pam_xdg/pam_xdg.c +++ b/lib/libpam/modules/pam_xdg/pam_xdg.c @@ -130,7 +130,12 @@ _pam_xdg_open(pam_handle_t *pamh, int flags __unused, } /* Setup the environment variable */ - asprintf(&runtime_dir, "XDG_RUNTIME_DIR=%s/%s", RUNTIME_DIR_PREFIX, user); + rv = asprintf(&runtime_dir, "XDG_RUNTIME_DIR=%s/%s", RUNTIME_DIR_PREFIX, user); + if (rv < 0) { + PAM_VERBOSE_ERROR("asprintf failed %d\n", rv); + rv = PAM_SESSION_ERR; + goto out; + } rv = pam_putenv(pamh, runtime_dir); if (rv != PAM_SUCCESS) { PAM_VERBOSE_ERROR("pam_putenv: failed (%d)", rv); @@ -140,7 +145,12 @@ _pam_xdg_open(pam_handle_t *pamh, int flags __unused, /* Setup the session count file */ for (i = 0; i < XDG_MAX_SESSION; i++) { - asprintf(&xdg_session_file, "%s/xdg_session.%d", user, i); + rv = asprintf(&xdg_session_file, "%s/xdg_session.%d", user, i); + if (rv < 0) { + PAM_VERBOSE_ERROR("asprintf failed %d\n", rv); + rv = PAM_SESSION_ERR; + goto out; + } session_file = openat(rt_dir_prefix, xdg_session_file, O_CREAT | O_EXCL, RUNTIME_DIR_MODE); free(xdg_session_file); if (session_file >= 0) @@ -256,7 +266,12 @@ _pam_xdg_close(pam_handle_t *pamh __unused, int flags __unused, /* Get the last session file created */ for (i = XDG_MAX_SESSION; i >= 0; i--) { - asprintf(&xdg_session_file, "%s/xdg_session.%d", user, i); + rv = asprintf(&xdg_session_file, "%s/xdg_session.%d", user, i); + if (rv < 0) { + PAM_VERBOSE_ERROR("asprintf failed %d\n", rv); + rv = PAM_SESSION_ERR; + goto out; + } session_file = openat(rt_dir_prefix, xdg_session_file, 0); if (session_file >= 0) { unlinkat(rt_dir_prefix, xdg_session_file, 0);