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.94.2) (envelope-from ) id 1rkAxp-00AwwR-1y for pgsql-hackers@arkaria.postgresql.org; Tue, 12 Mar 2024 22:51:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rkAxn-004F3d-IA for pgsql-hackers@arkaria.postgresql.org; Tue, 12 Mar 2024 22:51:16 +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.94.2) (envelope-from ) id 1rkAxn-004F3V-33 for pgsql-hackers@lists.postgresql.org; Tue, 12 Mar 2024 22:51:15 +0000 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rkAxk-004BzU-Qt for pgsql-hackers@postgresql.org; Tue, 12 Mar 2024 22:51:14 +0000 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-1dc49b00bdbso36860045ad.3 for ; Tue, 12 Mar 2024 15:51:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1710283871; x=1710888671; darn=postgresql.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=2J9XcC0dIz5mmVFqMs/Q8aePWtIA1mMX4kmJU1JuAJg=; b=guHMXqhy5vM09A7k+5fb9sWZl7bVb4OnTWfxHjAkjxBYUmwDTcYXZj/XQYG2rGdEcz SsCrSqqnbNaC0ndOr1C5/TSC3kt3K5ytq9EH7TWPZJBvaiWp38qOlqgB3ufI1MZEF/jN ajDmDO+0KCQiCyoSOiSW3gHZVJNpoDyyXGx53eG7xCJ1B1Zkbioe8G/SYWiLv0tKwvjQ 6XIihibRoADbX0EhYFQ6pazlAwJ/NekzROEGQravIKaq5SQQBmtLx4DrKkyQspWQ96uz AlBrMMCVZLJFq9rpl99qSZ3TwpU4ASCrm3iIqPoXJtiO35Qh9I19kHjC9V98/oj8MK6f Wbow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710283871; x=1710888671; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=2J9XcC0dIz5mmVFqMs/Q8aePWtIA1mMX4kmJU1JuAJg=; b=YZ5+ETu2AtCMPAdZkc7rgpA8FT4eME3zZPNT9oCJvkS6Ss/hWbPBMMp6unyRjxX9RC fAWesvFLKQx5ZbRyEi7FWGSxfB19chGlixlwzKQG3EUsk4RtobmMpC1mSj/iT4IDpzpm Ik1eOL6lPcqNs/sBcwXCuo1WWkNwIu102RP+4rbwV9g7+OMrEdidifSRGyxGN4sfLZNO NDTZSHnu6DRJT4ZHO97JHeL8VMsy/aaK36toAaQ1zqPCiKwfKpgmBlleaNZlL29Vw3EQ DqI6etgauDFko98WNOj+tUFs5MECTY1Da/+x1fOBBS2mcLlQe305xHQw3iQK+WiWFDix 8oeQ== X-Gm-Message-State: AOJu0Yxy1Egy2h7afvPqM3CLc7WvoefZp+G4/yJSdurCXPcVbytY4Kor fKfPca5O+SNuhm2M0kL4/vbLt6HhgAq0VM4lCTzMzlJV9aNA7MBSqkrWOV7AfQ== X-Google-Smtp-Source: AGHT+IGPJg5yPK7f5szpd/nEfLb/+eg6WM6vqE3cCUk9rdPt45OejYg8E+kh//GCYq//qBRF7HQmjg== X-Received: by 2002:a17:902:6f16:b0:1dd:707d:5ff2 with SMTP id w22-20020a1709026f1600b001dd707d5ff2mr8402804plk.29.1710283870830; Tue, 12 Mar 2024 15:51:10 -0700 (PDT) Received: from jeff-laptop.lan (c-76-102-242-158.hsd1.ca.comcast.net. [76.102.242.158]) by smtp.gmail.com with ESMTPSA id t18-20020a170902e85200b001dcfc68e7desm7176934plg.75.2024.03.12.15.51.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Mar 2024 15:51:10 -0700 (PDT) Message-ID: <2385813054ce4e4b3e5998600da2ce95b9509dc7.camel@j-davis.com> Subject: Re: perl: unsafe empty pattern behavior From: Jeff Davis To: Alvaro Herrera Cc: pgsql-hackers@postgresql.org Date: Tue, 12 Mar 2024 15:51:09 -0700 In-Reply-To: <202403121753.lw7u5b5fjsjw@alvherre.pgsql> References: <202403121753.lw7u5b5fjsjw@alvherre.pgsql> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.44.4-0ubuntu2 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Tue, 2024-03-12 at 18:53 +0100, Alvaro Herrera wrote: > I suggest that pg_dump/t/002_pg_dump.pl could use a verification that > the ->{regexp} thing is not empty. I'm not sure how exactly to test for=C2=A0an empty pattern. The problem is, we don't really want to test for an empty pattern, because /(?^:)/ is fine. The problem is //, which gets turned into an actual pattern (perhaps empty or perhaps not), and by the time it's in the %tests hash, I think it's too late to distinguish. Again, I'm not a perl expert, so suggestions welcome. > =C2=A0 I also tried grepping (for things > like qr{}, qr[], qr||, qr!!) and didn't find anything beyond what you > have ... but I only looked for the "qr" literal, not other ways to > get > regexes. I think that's fine. qr// seems the most dangerous, because it seems to behave differently in different versions of perl. Grepping for regexes in perl code is an "interesting" exercise. Regards, Jeff Davis