Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1xCUHD-00000003p4e-2FfV for pgsql-bugs@arkaria.postgresql.org; Fri, 02 Oct 2026 03:49:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.98.2) (envelope-from ) id 1xCUHB-0000000A2C2-1BC2 for pgsql-bugs@arkaria.postgresql.org; Fri, 02 Oct 2026 03:49:37 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1xCUHB-0000000A2Bu-06t4 for pgsql-bugs@lists.postgresql.org; Fri, 02 Oct 2026 03:49:37 +0000 Received: from fout-b1-smtp.messagingengine.com ([202.12.124.144]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1xCUH8-00000002NWS-2uGO for pgsql-bugs@lists.postgresql.org; Fri, 02 Oct 2026 03:49:36 +0000 Received: from phl-compute-07.internal (phl-compute-07.internal [10.202.2.47]) by mailfout.stl.internal (Postfix) with ESMTP id 237DF1D0010B for ; Thu, 1 Oct 2026 23:49:32 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-07.internal (MEProxy); Thu, 01 Oct 2026 23:49:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paquier.xyz; h= cc:cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1790912971; x=1790999371; bh=iWpEiUbnEk jTnM/gP5fu1C2rq3GS0Eb05QZcYJY6yOk=; b=jf76xrGHLaT2l2RZZ+JO7Tl44E lhfhDAiLNwlRAHZgeF6pyn4cFCazKwUPoa1JWJ8aKRLQbDcIuoOb7JY3g+VBXfvO xZDfGzezEKt0BQUmhOD1vxz2d3lgGKC6vVP1/mXCJH+pso1B/I3LtkKeiu9YLETC BdgQS7ZObPNYjCWlJjuQM0NGnFl+0m/j7JZgjNpp56nEkYAt31ZXDfk+BV4VGyRb jB1PBERbWGzothPGzUZrUdtEaFqRggFNTC27OlZOqft6WWSlfZcbVwLmjrW414Z7 jv6MYGC73pz0BW+ULDeEZbO70BmdehQ49HE8HXNpAoPfPBUKaEMY+ODUgDyg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1790912971; x=1790999371; bh=iWpEiUbnEkjTnM/gP5fu1C2rq3GS0Eb05QZ cYJY6yOk=; b=MS1hb0gh5yhiRoN6cxLJD0rOXnM85T+PaTaDSxRP19YQE96au3u Xs9iL3JhUpOJVXxOGC0Om3YvRCqbmWYcFLPUR4nfB495d873JRJUQU2KeQnW12+k 2OplnHUgadeunUhDvZ2RS6QzbozRTZr62TqBrufZR8c7anAFJ1PrPDL0IKOiHqU1 lxB+A42+hjxZwQcGOuL9Zi1xJrVBtFXsBBDRpNeRixJwXKUbfj02ypyex7hhZuVW 8CJGuM+ZToF0KHUuqMd7VHwjsPKUP1/EV+Ry8HvspsJIeZeXhqnBTAF7nqyOiHVZ 68R5diMai3JFMky1L7NzGqHm73KLPH2esjg== X-DKIM2-Info: draft=ietf-dkim-dkim2-spec-06; repo=github.com/dkim2wg/interop; date=2026-09-30; sw=lmtpprox; action=sign d=paquier.xyz a=rsa-sha256; DKIM2-Signature: i=1; m=1; t=1790912971; d=paquier.xyz; mf=PG1pY2hhZWxAcGFxdWllci54eXo+; rt=PHBnc3FsLWJ1Z3NAbGlzdHMucG9zdGdyZXNxbC5vcmc+; s=fm1:rsa-sha256:bYNelwsZtWY/0DScf5l0bIsaP9iFT6Y1ftllenz4XOou0WE Yu3XK2W6R6WGGngv1zJHhC12+zy+a2kyGwBKgKLlzC/JWioXQsdWkA1QJCoesuUI 4snwsaH4/2xGG7yBTn4rdIjGthHzZS5D/b9lAJIY2WmCCIb4DEyIth3orTBlzlRH /WHNzHj27GukAnG4lK9RvrHB5PMQxnb6gAS77ewWzAOxAxKAcYfFQiruW5K3NqEn U03D0AaHJfcd9PFHzGOPcT6qXv6abzvNmyEvwgjjCV1f3ADUcyt5+hQP1CFXK1c6 NcFQrLpqK733qu/0mV4zAUHCdCKRb3gvxXmjjWA==; X-DKIM2-Info: draft=ietf-dkim-dkim2-spec-06; repo=github.com/dkim2wg/interop; date=2026-09-30; sw=lmtpprox; action=mi-m=1; hc=12; hn=cc,content-disposition,content-type,date,feedback-id,from, in-reply-to,message-id,mime-version,references,subject,to; Message-Instance: m=1; h=sha256:Fotc/kp7/lrmQ0CdTpRzAfAc/4RGz6lGJLLKCxie4Zs=:7rWkg/lEZtXXwTxRqtjB1zckbYkrQQD9BfUdqbAWIp0=; X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTEokbMy90l/9uVWrHshEtnd0AsBH6yq9eX64NfWuVjvBrZUhFg9nL1E67YklJvWeo shf9He0PpXXWMdC2PNKZX3dJpxiSl+Qe2k3chf3iKgc/Ace8xDrCKHWq87lRQEoYlnTBZ4 gyF07FlPykRN/Qbq7epm9/ZYXt6MmI/gehlxTnYn73QZjVjjoSmhJPvVPdisay48mtW8F8 f0Ik64wa/tsz1ru73cre5zEvXR1AKkfJQZj6zvxVRf35w/LbSo0Lr+Yupk9DB4JXurCqiD DyunKxfhcUgFBphD5akj7RfUuP8r55mMOPMGGrkMwk1ezW0TWnIR2GIySoMjmcyRjuNYCA y8dZn3Cb8T3vw3uOli0m7Nn5pmBXP16nxSH8GLPcA29rIMGT4sWc8UKFq3RjQAf53/fkM4 ySi+SknakVYGKLyFlvQ/bGXrCT+JmXN3ShWVVcWbIo2blLoZ2EJAv1o+3Sed6PlGlYnEGZ Mt5XwgChpDS0eNN1x/Dm6hAlr793RHD3r15Qtt3G0onJM3qpB7CizLXscYxeQT7gj3wYwk a9N1eo+XpAZ14wH7GhBWZQ1Ipj8Lf5CHc69o0qViSML94Iy7AaH2+DbQw5oXYt97288GBH ck3DucW1JSyDK27GNveAZzOxaRJzs5z4MS+eDf8J/Tz98zNR2SZTf98u8hMQ X-ME-Proxy: Feedback-ID: i0fe9450f:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 1 Oct 2026 23:49:29 -0400 (EDT) Date: Fri, 2 Oct 2026 12:49:27 +0900 From: Michael Paquier To: "David G. Johnston" Cc: shihao zhong , "theshallow27@gmail.com" , "pgsql-bugs@lists.postgresql.org" Subject: Re: BUG #19730: PostgreSQL `pg_backup_start` accepts newlines in the backup label, producing an unrestorable `backup Message-ID: References: <19730-85a6044c9e72774a@postgresql.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="FzHWxuxcDz6qiRko" Content-Disposition: inline In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --FzHWxuxcDz6qiRko Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Oct 01, 2026 at 08:25:05PM -0700, David G. Johnston wrote: > The fix request seems like something we should just do barring foreseen > issues doing so. The system should not accept inputs it knows are > incompatible with the output it needs to produce. I agree there isn=E2= =80=99t a > reason to try and make this usage actually work. I tend to agree with you here. There is no real use case in allowing CR and LF characters in backup label names. If somebody has the idea to abuse of that to introduce custom data into a label file, that's probably a very bad idea anyway because it would overwrite the fields a backend things are the good ones when producing the backup_label file, leading to a most-probably broken instance. In short, I'm on board with the addition of an extra check that enforces this policy in do_pg_backup_start(), marking label files coming from the SQL functions as much as the replication command BASE_BACKUP. Side note: v19 now disallows CRLFs in role, database and tablespace names, see b380a56a3f95 and the reasons why. The same reasons do not apply here, and are much lighter as a CRLF would only manipulate a server to do an incorrect recovery. Like the other one, that's just wrong. Perhaps we should add one test query somewhere in a TAP script of src/test/recovery/, while on it. -- Michael --FzHWxuxcDz6qiRko Content-Type: application/pgp-signature; name=signature.asc -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEG72nH6vTowiyblFKnvQgOdbyQH0FAmq/KccACgkQnvQgOdby QH0dAw//a1sdZY96fJUh1TroEqqQmCf6w4o2um6gxChwO+a+ybWdbevfW1VbCP+m 4/o0S2IoQr7Fd0fXHxI6EwOixoUC+dZpB4XoD0q06+3xSyGWtC5Ka3htd8QELlXl hSsS9O6+u7RS83jt4AicztDpt5IxqSZaVViwkv1yfRa4N1AvEnIyZ9cDj4Crr/50 F1XBs8AnAhur1yDoppRYgkHq6x/oIUCVYLOvf6s3tObbvOR8LSDH3KBcfdWy1SJP 2QC2GIzjyez7GBLGJbe4Jkwrlfmlr4jUe1t5isG7gV5KWgFTzZzETRMs6PezYTfa iw9p1z0LY0RAlN4VMrwKznC3wum7sduOJ+QdMT1jWr5xMyijIW55KtNIbnBOEISx d1gIEd3MSwEnht0Uch8Fkar/XYVQ67nvTMvrxJw8lBwxVjxXrg1x6J+5K3w6SfNN 7g5jovx9L2sufBNNP+m3f3zWyaZt82cPFsOJ157f7BnF0eEVANlZr+57gwAcAz9K DQ6PApXDqt8t+S7TBcZb953pNCdopFxpsZGMdd704xT1krz2RuIHFHuaBTtZZPA8 xqzi7ECACJKHWII69MN39heBwB9P29VUXPiKDgfV1ZHx+WtygAegt8OBiMGLljKH T4PDHk+jW/HhfXjpsTZag1TmeZSh2mm8kfIq3Vht4wl6BAYDgaI= =2hz8 -----END PGP SIGNATURE----- --FzHWxuxcDz6qiRko--