From owner-freebsd-current@freebsd.org Wed Mar 4 21:29:53 2020 Return-Path: Delivered-To: freebsd-current@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E2FC625234E for ; Wed, 4 Mar 2020 21:29:53 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48Xn8c3xnrz416X; Wed, 4 Mar 2020 21:29:52 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: by mail-wr1-x443.google.com with SMTP id v11so2373439wrm.9; Wed, 04 Mar 2020 13:29:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=9O043JA+eDqIoqC5cQEiru6oEMuMBQXNKachjcHr6vw=; b=C6Xl5GbNLkC3k1rbD8Y2c0lifq0i0q8UPVKT9Xb4+Gobl9K1zsTMnZa0+L4R8Qhp97 8uPdaeZ4BoQQT5iRy7Ky4KVdpPjmcdDa4UbvNwwYA+JrPxyuS5e5Ubv340ybVXF3B1vs 7ga3UCbLQQkJRWcsuvGs853UaB24R/x2mwxMJ2AwFG+wO6FEFERfxC8docWmauNC6CaN m+SLgPYRGjbIvDr7khIDIYdx9NRh9XAoeQ9rT9VhAUalk0D9ywWAPZQ89BaKG1BSKi6a LtJ60BQETa83oQs0Fna1qHnFY3AHf6uN6ZeiXz2XkVXmm7aR/Jn7Kr4SsNESUeFrnTbY r13Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=9O043JA+eDqIoqC5cQEiru6oEMuMBQXNKachjcHr6vw=; b=HDdUJ/w5aNbtxPMZUNBiFSs1CkbYM8120Aokpubar2c5rn5XXUhao3mDrbGtBYaLEV a4f4pdiqSKahh/al/a30uxADfw5n7AN+/6LRnFddDO/mHWKodhbVBSitnLY5tYi0VZaZ f3UZObLmP4OxGezz37/CI2GJ/vcUV1PPNoUCLDJz59nzvhZgUuUOvLupoXxntqRDLI6W 0OfFv+MDNTH8hsOgesHWpe48CVU3OH67U7Qk9XENoZ5n6Y+1n/gi+/7lCb8F0/bCY3O2 LzUMjBEjnxlvPBYdzcx4wVYLreqCrE8nNJup2gzjxHU57/scKWvFLSnPwMrdNQgxuJ20 0JJw== X-Gm-Message-State: ANhLgQ0au5C3yEPOht4niAZ3MzZCQgIj1A5LIedR1vganj9iNVTEhMcp /GZ622WNlfufbbftBz+a5IkoFs87oGWJIXTSSHMQbg== X-Google-Smtp-Source: ADFU+vu5CUb+14IKNeS2bQ+VKG8zVxwiw1VWTnbMYybAvnwjlZMw4/0hRgQZGm7lDcVM77d5/GqWuCyy2Jl0OeZuhBY= X-Received: by 2002:a5d:4083:: with SMTP id o3mr6073074wrp.237.1583357389567; Wed, 04 Mar 2020 13:29:49 -0800 (PST) MIME-Version: 1.0 Received: by 2002:a5d:6b02:0:0:0:0:0 with HTTP; Wed, 4 Mar 2020 13:29:48 -0800 (PST) In-Reply-To: References: <202003021755.022Ht8TM001639@beefy18.nyi.freebsd.org> <7f10b92731a7e7a3e63d2b2277012cfb@FreeBSD.org> From: Mateusz Guzik Date: Wed, 4 Mar 2020 22:29:48 +0100 Message-ID: Subject: Re: [package - head-amd64-default][sysutils/lsof] Failed for lsof-4.93.2_9,8 in build To: Larry Rosenman Cc: Freebsd current Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 48Xn8c3xnrz416X X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=C6Xl5GbN; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of mjguzik@gmail.com designates 2a00:1450:4864:20::443 as permitted sender) smtp.mailfrom=mjguzik@gmail.com X-Spamd-Result: default: False [-3.00 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_GOOD(-0.10)[text/plain]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; IP_SCORE_FREEMAIL(0.00)[]; IP_SCORE(0.00)[ip: (2.38), ipnet: 2a00:1450::/32(-2.40), asn: 15169(-1.66), country: US(-0.05)]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; RCPT_COUNT_TWO(0.00)[2]; RCVD_IN_DNSWL_NONE(0.00)[3.4.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.5.4.1.0.0.a.2.list.dnswl.org : 127.0.5.0]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0] X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Mar 2020 21:29:53 -0000 This should do it, it has a blind HAS_PWD define put in which you should take out for the commit. You can conditionalize HAS_PWD just on the kernel being -CURRENT. I don't think supporting older versions of said branch is of significance. --- dproc.c 2020-03-04 21:29:18.153427000 +0000 +++ /root/dproc.c 2020-03-04 21:24:12.629513000 +0000 @@ -37,7 +37,9 @@ #include "lsof.h" +#define HAS_PWD + _PROTOTYPE(static void enter_vn_text,(KA_T va, int *n)); _PROTOTYPE(static void get_kernel_access,(void)); _PROTOTYPE(static void process_text,(KA_T vm)); @@ -132,6 +134,14 @@ KA_T fa; #endif /* defined(HAS_FDESCENTTBL) */ +#if defined(HAS_PWD) + struct pwd pwd; +#endif /* defined(HAS_FDESCENTTBL) */ + + struct vnode *cdir; + struct vnode *rdir; + struct vnode *jdir; + static ofb_t *ofb = NULL; static int ofbb = 0; int pgid, pid; @@ -312,6 +322,21 @@ continue; #endif /* defined(HAS_FDESCENTTBL) */ +#if defined(HAS_PWD) + cdir = rdir = jdir = NULL; + if (fd.fd_pwd != NULL) { + if (!kread((KA_T)fd.fd_pwd, (char *)&pwd, sizeof(pwd))) { + cdir = pwd.pwd_cdir; + rdir = pwd.pwd_rdir; + jdir = pwd.pwd_jdir; + } + } +#else + cdir = fd.fd_cdir; + rdir = fd.fd_rdir; + jdir = fd.fd_jdir; +#endif + /* * Allocate a local process structure. */ @@ -347,20 +372,20 @@ /* * Save current working directory information. */ - if (!ckscko && fd.fd_cdir) { + if (!ckscko && cdir) { alloc_lfile(CWD, -1); Cfp = (struct file *)NULL; - process_node((KA_T)fd.fd_cdir); + process_node((KA_T)cdir); if (Lf->sf) link_lfile(); } /* * Save root directory information. */ - if (!ckscko && fd.fd_rdir) { + if (!ckscko && rdir) { alloc_lfile(RTD, -1); Cfp = (struct file *)NULL; - process_node((KA_T)fd.fd_rdir); + process_node((KA_T)rdir); if (Lf->sf) link_lfile(); } @@ -369,10 +394,10 @@ /* * Save jail directory information. */ - if (!ckscko && fd.fd_jdir) { + if (!ckscko && jdir) { alloc_lfile("jld", -1); Cfp = (struct file *)NULL; - process_node((KA_T)fd.fd_jdir); + process_node((KA_T)jdir); if (Lf->sf) link_lfile(); } -- Mateusz Guzik