Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gzSw2-0003lg-IF for pgsql-hackers@arkaria.postgresql.org; Thu, 28 Feb 2019 21:09:42 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1gzSw1-0000xu-2Y for pgsql-hackers@arkaria.postgresql.org; Thu, 28 Feb 2019 21:09:41 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gzSw0-0000u2-9f for pgsql-hackers@lists.postgresql.org; Thu, 28 Feb 2019 21:09:40 +0000 Received: from mail-yw1-xc44.google.com ([2607:f8b0:4864:20::c44]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gzSvx-0004gV-4C for pgsql-hackers@lists.postgresql.org; Thu, 28 Feb 2019 21:09:38 +0000 Received: by mail-yw1-xc44.google.com with SMTP id s204so12298176ywg.2 for ; Thu, 28 Feb 2019 13:09:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joeconway.com; s=google; h=subject:to:cc:references:from:openpgp:autocrypt:message-id:date :user-agent:mime-version:in-reply-to; bh=RG954keO2CxX3XD3DNjChtib/qeF+v//hE0QukfwmRo=; b=rcZ7lNpI1WuL4Ui5mSjuqBRY7qVGudfnDHr31bd5TkuU3h+427eKztf4Ih9vY/4Ihw ZFTVC0mJL+WSP6z7AXQkYUIWad0MX6h7sEh9Sz2SbRFtAigGB8/kKTlUvPv5lSx41/zt 59pZLsHeEeAlppUZlZYufKdr7SlBzV8UjtGT3dlz9mKoLA6gHWSPvvBEJthU0s6/k1OC tP2waskFdu8vqfRTsQxwN2jkxMkujhMQ7M3BAijQdxyqcf5O8/BM+XU31HVWpXUchmig k+0AC+9U86fixHPiq8VvSwPzZtou3h9KsMOwvT5deqvuihqLcbTXzf+GJiuQa2Azbijj Ckhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:openpgp:autocrypt :message-id:date:user-agent:mime-version:in-reply-to; bh=RG954keO2CxX3XD3DNjChtib/qeF+v//hE0QukfwmRo=; b=Fda5H1NUhiX3alDOqmOpwh6XicNqvKfcHz+HuTUF5KMKPol+VILOUIg4myRwi9z1/D Ccg5CKMkaXN+45/ap45YPdBZaBUqMkGM8vOl6Bmnpm3P33sbMT8uvfEMONqtGC6yR8Ae 0proJnRLkRIA/8ujbHqA6A6Wznm56T9iTjZDcY8+Xc5OCBZHVuWCXojfVFMhFZh6S+U2 BrVGmmto87eOBCFEi2Xgh/lt53b+yGg0OLnm31v12+f1YKJs/6SwCAe/bxNpR3n+JRT7 JyeA3KKEnxGnAE+gJu/Tj3+IezFi/r+0sCwzWce004jsAc4z4q8cmDx/yTwWObQuwUNH qKTQ== X-Gm-Message-State: APjAAAWxzEwYSfWb3io+4tvEaAXaVSg2cuEu3ufEppfxwzMl2eLijTbC 6I5EvIgS3HbWp+f+akGSYYrz0tF3ljfM8Q== X-Google-Smtp-Source: APXvYqzYZ+mcoW+A316WLVWwzBkWfCNrcrLaeI4bBt4jnUXPMFuuU09fcfnF6BsTAnQTEagr407x3g== X-Received: by 2002:a81:5f86:: with SMTP id t128mr862346ywb.467.1551388175968; Thu, 28 Feb 2019 13:09:35 -0800 (PST) Received: from [192.168.4.41] ([72.17.18.98]) by smtp.gmail.com with ESMTPSA id h204sm6454002ywh.52.2019.02.28.13.09.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Feb 2019 13:09:33 -0800 (PST) Subject: Re: get_controlfile() can leak fds in the backend To: Michael Paquier Cc: Postgres hackers References: <20190227074728.GA15710@paquier.xyz> <748d7697-a25f-029d-e607-dbe4546a1b38@joeconway.com> <22d70be7-9334-bfdc-a071-2efca3c52b98@joeconway.com> <20190228005445.GC1617@paquier.xyz> <20190228122059.GA11351@paquier.xyz> From: Joe Conway Openpgp: preference=signencrypt Autocrypt: addr=mail@joeconway.com; keydata= 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 Message-ID: Date: Thu, 28 Feb 2019 16:09:32 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: <20190228122059.GA11351@paquier.xyz> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="wxntDThIkfjbbNmDXq6kLHuFwtb6WIBgU" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --wxntDThIkfjbbNmDXq6kLHuFwtb6WIBgU Content-Type: multipart/mixed; boundary="dw6md1CWuEpLxUgNxaaK0rP0nB1tC4CMY"; protected-headers="v1" From: Joe Conway To: Michael Paquier Cc: Postgres hackers Message-ID: Subject: Re: get_controlfile() can leak fds in the backend References: <20190227074728.GA15710@paquier.xyz> <748d7697-a25f-029d-e607-dbe4546a1b38@joeconway.com> <22d70be7-9334-bfdc-a071-2efca3c52b98@joeconway.com> <20190228005445.GC1617@paquier.xyz> <20190228122059.GA11351@paquier.xyz> In-Reply-To: <20190228122059.GA11351@paquier.xyz> --dw6md1CWuEpLxUgNxaaK0rP0nB1tC4CMY Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 2/28/19 7:20 AM, Michael Paquier wrote: > On Thu, Feb 28, 2019 at 07:11:04AM -0500, Joe Conway wrote: >> Sure, will do. What are your thoughts on backpatching? This seems >> unlikely to be a practical concern in the field, so my inclination is = a >> master only fix. >=20 > I agree that this would unlikely become an issue as an error on the > control file would most likely be a PANIC when updating it, so fixing > only HEAD sounds fine to me. Thanks for asking! Committed and push that way. By the way, while looking at this, I noted at least a couple of places where OpenTransientFile() is being passed O_RDWR when the usage is pretty clearly intended to be read-only. For example at least two instances in slru.c -- SlruPhysicalReadPage() and SimpleLruDoesPhysicalPageExist(). Is it worth while searching for and fixing those instances? Joe --=20 Crunchy Data - http://crunchydata.com PostgreSQL Support for Secure Enterprises Consulting, Training, & Open Source Development --dw6md1CWuEpLxUgNxaaK0rP0nB1tC4CMY-- --wxntDThIkfjbbNmDXq6kLHuFwtb6WIBgU Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEg14x9eymXoJyHrH+N/L3QzX32GUFAlx4TgwACgkQN/L3QzX3 2GXTKQ//Z3P8+LMV4OeHqecY1Sz+XDBQHLy3PR/w4CaPd/NQux64UI1l0cIIGegc s2vZ2v7rage3tWt6rL7YysYWz0KrAE5BU7f9eW2RgKVWoF7RA9kaPmDfwokAeCUZ bsgXo5F7WLsYpxcK6DNKmmsXDa6X89UzvhdgZal5e5eLpPNtKP+ifPhz3yvZ6g6E rQZCAZ/mVBOcljLggCWW06NnJRqZB982++H0YnbtEJ4rAH6Ss16k+xS85zNmu3jc m0aJ9eZfGTLLrcufUg2+IZxSj2Ke9hYFyM8DFyxQx7y2yNE7K06+YzOKYhbwFXpe /iwdlBbBGoLOhFPq9Vj4u3lIgjm+Z8Qzo8lXStLc6bXdxMtZfZeix6rR+n+vwmAn BelSd73MldVcu6fmGbfC92OgD5uF/Octx2nFkXcoOd2yGbY5t2FAGLO9IP6iVDoS Uxb1aHvchrK0VPJplfhykoqPXlN9VjT4binWqPfnB0hGLncAVGJAOw3fAv5d4mcf /R/3wcUwkEkqjZysUAfoEIhVIkCO6dQxpkdk5UQdS3noxsaG7sVnn/PfotwAscDg G0aMKlhZaZfKH2Ge+RQbando8fun0cVD3+ODyxUXFpXx0ORwL95Ef/yGLnUCFwpb APnFe3n8ND3hRLl43zcd/o7FYdBM4ZakuG+ibICtqQ7nB741jGw= =91lu -----END PGP SIGNATURE----- --wxntDThIkfjbbNmDXq6kLHuFwtb6WIBgU--