Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q6o5S-0007IY-Iu for pgsql-hackers@arkaria.postgresql.org; Wed, 07 Jun 2023 08:00:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1q6o5R-00020R-5m for pgsql-hackers@arkaria.postgresql.org; Wed, 07 Jun 2023 08:00:09 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q6o5Q-0001wk-Rp for pgsql-hackers@lists.postgresql.org; Wed, 07 Jun 2023 08:00:08 +0000 Received: from mail-lj1-x235.google.com ([2a00:1450:4864:20::235]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1q6o5L-000kb9-US for pgsql-hackers@lists.postgresql.org; Wed, 07 Jun 2023 08:00:08 +0000 Received: by mail-lj1-x235.google.com with SMTP id 38308e7fff4ca-2b15a327c20so83102101fa.1 for ; Wed, 07 Jun 2023 01:00:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686124803; x=1688716803; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=xKJ4yI0aV0EANxtv7VHhWqcg1qY+w2nTD02wkCyIs2M=; b=Oin7xU7aliSD3Qqog/2t3tc6ADknAm14RwHnjc4BYJl0HOr4MFJku9Tp4lDRRNErlw SzNiKgZ7XDpYFkDmKW5GbG9zCB9Ldbfkx/0l5+f1fsRhJKhVjR1BQVSKNEOi3Bi9VEaY 7Ki338BbMpeYGo4U7ekXskVk4kNq0woB9C7HWDXpcZhkK+RDox/zNPU0wLqJmkHR9n8x tKZYChwVpnT7r+iFUfl0gKN6zIKV+AXnioUlbV0HvqXvtIjClNeGIow5wLKs/D4NBY7U CUWwZ0mI92xVTV+XHDvXeC4kePPTtzgVIYNs4kr1qYAdGbZEqTFp9mvq9gaCiFxhgGmS bkyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686124803; x=1688716803; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=xKJ4yI0aV0EANxtv7VHhWqcg1qY+w2nTD02wkCyIs2M=; b=Ls/Rx7Ms8aT3i22dfqzMyR+va1dioenvYutN3glvGt3lcVToiw0U/TjUnjVDfRKUgP y/XTUKONiICAsZNkggIFwdqeltx6f/SXoUvPUcXrc4JCvqZmqyahMD5On+mW7Y1wt++f UpgF2FmWX/KuuhtBvWYWMV/t9Au0q+rGIWKWWi24n0UkhMbsMKB024uRQsqj8N8qS4h2 hX5MCxdJfhmcZXnSBdzVgUZDJDnSugf7GEA2+4ROZvybWMiI+OsVa82gTNnzhby9OYJM v9I0Xaz1Y5rXmiowPoFbAsuhuxn7y1FgqYzVR//Rh6uo2YSiFOm7Jm5mCmwOg3eQCcpf aGgQ== X-Gm-Message-State: AC+VfDx0zqI8rHixDAJ1/AkuFBfnYZfHTQ+PWyqPv67oJoBwOIxug/2R WevKc9b0Vj658akVLXtVKD8= X-Google-Smtp-Source: ACHHUZ73MpbZQs15THV83wqMtYeF1O41ywFAzQAg9Bh3qacgU4UacXKf788BpjsNHa/bzYToWN9RiA== X-Received: by 2002:a2e:8799:0:b0:2b1:c286:7dcf with SMTP id n25-20020a2e8799000000b002b1c2867dcfmr2014212lji.23.1686124802714; Wed, 07 Jun 2023 01:00:02 -0700 (PDT) Received: from [1.0.0.7] ([178.155.22.130]) by smtp.gmail.com with ESMTPSA id n5-20020a2e86c5000000b002ac7a715585sm2155453ljj.30.2023.06.07.01.00.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 07 Jun 2023 01:00:01 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------PO2ZIHf5SmcK38grIqOydDIJ" Message-ID: <591971ce-25c1-90f3-0526-5f54e3ebb32e@gmail.com> Date: Wed, 7 Jun 2023 11:00:00 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: Importing pg_bsd_indent into our source tree Content-Language: en-US To: Tom Lane Cc: Andres Freund , pgsql-hackers@lists.postgresql.org References: <20230209215532.oomwhj5jyggmciq7@awork3.anarazel.de> <20230209221450.bkuozhhzlgpupx4d@awork3.anarazel.de> <3966340.1675981162@sss.pgh.pa.us> <20230209231013.gjpxs4gapxjatc64@awork3.anarazel.de> <3972584.1675984746@sss.pgh.pa.us> <20230210000841.4chvtmr4gkrfsotb@awork3.anarazel.de> <3979957.1675988437@sss.pgh.pa.us> <20230210003555.kyhyqq3imgocs62k@awork3.anarazel.de> <3986263.1675989733@sss.pgh.pa.us> <718245.1676159640@sss.pgh.pa.us> <20230212004254.3lp22a7bpkcjo3y6@awork3.anarazel.de> <734490.1676165550@sss.pgh.pa.us> <736439.1676166232@sss.pgh.pa.us> From: Alexander Lakhin In-Reply-To: <736439.1676166232@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------PO2ZIHf5SmcK38grIqOydDIJ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hello, I've discovered that the pg_bsd_indent test added here makes an ASAN-instrumented build fail on: ASAN_OPTIONS=detect_leaks=0:strict_string_checks=1 make check-world as follows: # +++ tap check in src/tools/pg_bsd_indent +++ t/001_pg_bsd_indent.pl .. 1/? #   Failed test 'pg_bsd_indent succeeds on binary' #   at t/001_pg_bsd_indent.pl line 41. #   Failed test 'pg_bsd_indent output matches for binary' #   at t/001_pg_bsd_indent.pl line 50. #   Failed test 'pg_bsd_indent succeeds on comments' #   at t/001_pg_bsd_indent.pl line 41. #   Failed test 'pg_bsd_indent output matches for comments' #   at t/001_pg_bsd_indent.pl line 50. t/001_pg_bsd_indent.pl .. 10/? ... regress_log_001_pg_bsd_indent contains: # Running: pg_bsd_indent .../src/tools/pg_bsd_indent/tests/binary.0 binary.out -P.../src/tools/pg_bsd_indent/tests/binary.pro ================================================================= ==2124067==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60600000005a at pc 0x560aa8972dae bp 0x7ffebd080460 sp 0x7ffebd07fc08 READ of size 40 at 0x60600000005a thread T0     #0 0x560aa8972dad in __interceptor_strspn.part.0 (.../src/tools/pg_bsd_indent/pg_bsd_indent+0x5edad)     #1 0x560aa8a3f495 in lexi .../src/tools/pg_bsd_indent/lexi.c:258     #2 0x560aa8a3451d in main .../src/tools/pg_bsd_indent/indent.c:269     #3 0x7f6ffab1ad8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58     #4 0x7f6ffab1ae3f in __libc_start_main_impl ../csu/libc-start.c:392     #5 0x560aa894b7d4 in _start (.../src/tools/pg_bsd_indent/pg_bsd_indent+0x377d4) 0x60600000005a is located 0 bytes to the right of 58-byte region [0x606000000020,0x60600000005a) allocated by thread T0 here:     #0 0x560aa89e4980 in __interceptor_realloc.part.0 (.../src/tools/pg_bsd_indent/pg_bsd_indent+0xd0980)     #1 0x560aa8a3d24e in fill_buffer .../src/tools/pg_bsd_indent/io.c:365 SUMMARY: AddressSanitizer: heap-buffer-overflow (.../src/tools/pg_bsd_indent/pg_bsd_indent+0x5edad) in __interceptor_strspn.part.0 ... I understand that that code is almost as ancient as me and it works as intended (fill_buffer() doesn't null-terminate a buffer), but may be this is worth fixing in the Postgres source tree to keep the whole testing baseline high (if someone finds strict_string_checks useful). If so, perhaps something like the attached will do. Best regards, Alexander --------------PO2ZIHf5SmcK38grIqOydDIJ Content-Type: text/x-patch; charset=UTF-8; name="improve-strspn-for-bsd_indent.patch" Content-Disposition: attachment; filename="improve-strspn-for-bsd_indent.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ19ic2RfaW5kZW50L2xleGkuYyBiL3NyYy90b29s cy9wZ19ic2RfaW5kZW50L2xleGkuYwppbmRleCA5NDNiZjdjZTZiLi4xYWY4MTY3NDkzIDEw MDY0NAotLS0gYS9zcmMvdG9vbHMvcGdfYnNkX2luZGVudC9sZXhpLmMKKysrIGIvc3JjL3Rv b2xzL3BnX2JzZF9pbmRlbnQvbGV4aS5jCkBAIC0yMTIsNiArMjEyLDI2IEBAIGlzX2Z1bmNf ZGVmaW5pdGlvbihjaGFyICp0cCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBz aXplX3QKK3N0cnNwbl9uKGNvbnN0IGNoYXIgKnMxLCBjb25zdCBjaGFyICpzMikKK3sKKwlj b25zdCBjaGFyICpwID0gczEsICpzcGFucDsKKwljaGFyIGMsIHNjOworCS8qCisJICogU2tp cCBhbnkgY2hhcmFjdGVycyBpbiBzMiwgZXhjbHVkaW5nIHRoZSB0ZXJtaW5hdGluZyBcMCBh bmQgXG4uCisJICovCitjb250OgorCWMgPSAqcCsrOworCWZvciAoc3BhbnAgPSBzMjsgKHNj ID0gKnNwYW5wKyspICE9IDA7KQorCQlpZiAoc2MgPT0gYykKKwkJCWdvdG8gY29udDsKKwkJ ZWxzZSBpZiAoc2MgPT0gJ1xuJykKKwkJCWJyZWFrOworCXJldHVybiAocCAtIDEgLSBzMSk7 Cit9CisKKyNkZWZpbmUgc3Ryc3BuKHMxLCBzMikgc3Ryc3BuX24oczEsIHMyKQorCiBpbnQK IGxleGkoc3RydWN0IHBhcnNlcl9zdGF0ZSAqc3RhdGUpCiB7Cg== --------------PO2ZIHf5SmcK38grIqOydDIJ--