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 1pFrAI-0007ZN-G9 for pgsql-hackers@arkaria.postgresql.org; Thu, 12 Jan 2023 06:34:18 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pFrAH-0000P2-Cu for pgsql-hackers@arkaria.postgresql.org; Thu, 12 Jan 2023 06:34:17 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pFrAG-0000Os-TX for pgsql-hackers@lists.postgresql.org; Thu, 12 Jan 2023 06:34:17 +0000 Received: from mail-pj1-x1043.google.com ([2607:f8b0:4864:20::1043]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pFrAD-0005cK-WC for pgsql-hackers@lists.postgresql.org; Thu, 12 Jan 2023 06:34:15 +0000 Received: by mail-pj1-x1043.google.com with SMTP id o7-20020a17090a0a0700b00226c9b82c3aso19768728pjo.3 for ; Wed, 11 Jan 2023 22:34:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:subject:references:in-reply-to:message-id:to:from:date :from:to:cc:subject:date:message-id:reply-to; bh=2ZzqBiCB5g2HZZMyN2Y6Pqy3PkenZlHU9TyqFDFA7ig=; b=GEPe4EBkvMtzPk73fzDjw6iSXyAw4c6B0xFJFJu7tNKG7n/o9LKLDYIr1yY0JWKDss Bdx4vrGhU3MxLY5/044xv1hHOchXE5FxP+a2VlJyOcOLbOt6MmMSX1QK6DWk/y7oHbyR ykvGATKf+MG+8JZPFafprsi7rPDKiwBz8LGDlnv+YoSTHm1YQ5wFT4kKGPW4REcqIfaG eHfdh3PopCzuwCgK1qy/NVMzpkIYTLpVa6eqh7FW0DLOVCIqpDpgviAySEr/RzRinXHx AjkPKC04jt101zbp3PtnA4BgVynE3CSeCZSYYPF4CXIAi+8Wz9ED67k00JTswMYdbi+0 d/fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:subject:references:in-reply-to:message-id:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=2ZzqBiCB5g2HZZMyN2Y6Pqy3PkenZlHU9TyqFDFA7ig=; b=De2yDhgby380kIz5CLiEzz/B0mLx9wCEntWGRZMCMfLK0yMMnvevAw4D8widzPc2iL o67CAXklWr+WN1faI9BY7dN7nAOihWOFfiditmnYgFsqJPSVjROI4pNDnf/LAOgN9JUe aA/899KIBrR2sK3zw9lnRfQL/gVRBlD4JUBTuai5m2z2lpzp3F/sA3APKFotMnRJ/JHr AORJ7sBxy4Se4VwwZXMqicjaGEYldIMjP2UEd5hb2HFQpaS6N6keyCYV7II4avmX3RNZ Z5AFU3da9VPJgynfLOKgO2w9ForNU5xAX1tyWihvuQ0VPyHYQWSqsU69uXXaHJfcLb9a /jmg== X-Gm-Message-State: AFqh2krsh/Gth9XoDuqL9SASfI+L4oS2J/nNcan4vIcGODk5AI0BMqlg PcZhstoKlUVPr8CuMvf6oemHpzrf5hQ= X-Google-Smtp-Source: AMrXdXu0n87WMWlRQYmcSRLFn7JRQtG9E1f6O0NDovfpn4qgCrSsg6nVt7EljIb8qwySUby1UBDB1A== X-Received: by 2002:a05:6a20:158b:b0:af:6cc0:5b3d with SMTP id h11-20020a056a20158b00b000af6cc05b3dmr107433523pzj.7.1673505252630; Wed, 11 Jan 2023 22:34:12 -0800 (PST) Received: from [127.0.0.1] (60-249-3-227.hinet-ip.hinet.net. [60.249.3.227]) by smtp.gmail.com with ESMTPSA id g6-20020a625206000000b00576e4c7b9ecsm11014845pfb.214.2023.01.11.22.34.11 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 11 Jan 2023 22:34:12 -0800 (PST) Date: Thu, 12 Jan 2023 14:34:01 +0800 From: Zhang Mingli To: PostgreSQL Hackers Message-ID: <1c7954e4-1705-4855-a99d-c77bf426c3e7@Spark> In-Reply-To: References: Subject: Fix condition in shm_toc and remove unused function shm_toc_freespace. X-Readdle-Message-ID: 1c7954e4-1705-4855-a99d-c77bf426c3e7@Spark MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="63bfa9df_333ab105_17004" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --63bfa9df_333ab105_17004 Content-Type: multipart/alternative; boundary="63bfa9df_628c895d_17004" --63bfa9df_628c895d_17004 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi, hackers Some conditions in shm=5Ftoc=5Finsert and shm=5Ftoc=5Fallocate are bogus,= like: if (toc=5Fbytes + nbytes > total=5Fbytes =7C=7C toc=5Fbytes + nbytes < t= oc=5Fbytes) Remove the condition =60toc=5Fbytes + nbytes < toc=5Fbytes=60 and take a = sizeof(shm=5Fentry) into account in shm=5Ftoc=5Fallocate though shm=5Ftoc=5Fallocate does that too. /* Check for memory exhaustion and overflow. */ - if (toc=5Fbytes + nbytes > total=5Fbytes =7C=7C toc=5Fbytes + nbytes <= toc=5Fbytes) + if (toc=5Fbytes + sizeof(shm=5Ftoc=5Fentry) + nbytes > total=5Fbytes) =7B =C2=A0 SpinLockRelease(&toc->toc=5Fmutex); shm=5Ftoc=5Ffreespace is introduced with shm=5Ftoc by original commit 6dd= d5137b2, but is not used since then, so remove it. Regards, Zhang Mingli --63bfa9df_628c895d_17004 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline
Hi, hackers

Some conditions in shm=5Ftoc=5Finsert and shm=5Ftoc=5Fallocate are bogus,= like:

if (toc=5Fbytes + nbytes > total=5F= bytes =7C=7C toc=5Fbytes + nbytes < toc=5Fbytes)

Remove the condition =60toc=5Fbytes + nbytes < toc=5Fbytes=60 and take= a sizeof(shm=5Fentry) into account in shm=5Ftoc=5Fallocate though&=23160= ;
shm=5Ftoc=5Fallocate does that too.

/* Check for memory exhaustion and o= verflow. */
- if (toc=5Fbytes + nbytes > tota= l=5Fbytes =7C=7C toc=5Fbytes + nbytes < toc=5Fbytes)
+ if (toc=5Fbytes + sizeof(shm=5Ftoc= =5Fentry) + nbytes > total=5Fbytes)
=7B
&=23160; SpinLockRelease(&toc->= ;toc=5Fmutex);

shm=5Ftoc=5Ffreespace is introduced with shm=5Ftoc by original commit 6dd= d5137b2, but is not used since then, so remove it.


Regards,
Zhang Mingli
--63bfa9df_628c895d_17004-- --63bfa9df_333ab105_17004 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="=?utf-8?Q?v0-0001-Fix-condition-in-shm=5Ftoc-and-remove-unused-functi.patch?=" RnJvbSA4ZDEyNzUwNGQwYjRkOWE5MDlhZGQ5YjIzNWYzNmQ0MGIzY2U3ZjZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBaaGFuZyBNaW5nbGkgPGF2YW1pbmdsaUBnbWFpbC5jb20+CkRh dGU6IFRodSwgMTIgSmFuIDIwMjMgMTQ6MTE6NDMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYwXSBG aXggY29uZGl0aW9uIGluIHNobV90b2MgYW5kIHJlbW92ZSB1bnVzZWQgZnVuY3Rpb24KIHNobV90 b2NfZnJlZXNwYWNlLgoKRml4IGJvZ3VzIGNvbmRpdGlvbiBpbiBzaG1fdG9jX2luc2VydCBhbmQg c2htX3RvY19hbGxvY2F0ZS4KVGFrZSBhIHNpemVvZihzaG1fZW50cnkpIGludG8gYWNjb3VudCB3 aGVuIHNobV90b2NfYWxsb2NhdGUuClJlbW92ZSB1bnVzZWQgZnVuY3Rpb24gc2htX3RvY19mcmVl c3BhY2UuCi0tLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc2htX3RvYy5jIHwgMjYgKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL3N0b3JhZ2Uvc2htX3RvYy5oICAgICB8 ICAxIC0KIDIgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDI2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3NobV90b2MuYyBiL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvaXBjL3NobV90b2MuYwppbmRleCAwY2Q4MjQ0MDBmLi4zN2JkMGRkMjVmIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zaG1fdG9jLmMKKysrIGIvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9pcGMvc2htX3RvYy5jCkBAIC0xMTAsNyArMTEwLDcgQEAgc2htX3RvY19h bGxvY2F0ZShzaG1fdG9jICp0b2MsIFNpemUgbmJ5dGVzKQogCQkrIGFsbG9jYXRlZF9ieXRlczsK IAogCS8qIENoZWNrIGZvciBtZW1vcnkgZXhoYXVzdGlvbiBhbmQgb3ZlcmZsb3cuICovCi0JaWYg KHRvY19ieXRlcyArIG5ieXRlcyA+IHRvdGFsX2J5dGVzIHx8IHRvY19ieXRlcyArIG5ieXRlcyA8 IHRvY19ieXRlcykKKwlpZiAodG9jX2J5dGVzICsgc2l6ZW9mKHNobV90b2NfZW50cnkpICsgbmJ5 dGVzID4gdG90YWxfYnl0ZXMpCiAJewogCQlTcGluTG9ja1JlbGVhc2UoJnRvYy0+dG9jX211dGV4 KTsKIAkJZXJlcG9ydChFUlJPUiwKQEAgLTEyNCwyOSArMTI0LDYgQEAgc2htX3RvY19hbGxvY2F0 ZShzaG1fdG9jICp0b2MsIFNpemUgbmJ5dGVzKQogCXJldHVybiAoKGNoYXIgKikgdG9jKSArICh0 b3RhbF9ieXRlcyAtIGFsbG9jYXRlZF9ieXRlcyAtIG5ieXRlcyk7CiB9CiAKLS8qCi0gKiBSZXR1 cm4gdGhlIG51bWJlciBvZiBieXRlcyB0aGF0IGNhbiBzdGlsbCBiZSBhbGxvY2F0ZWQuCi0gKi8K LVNpemUKLXNobV90b2NfZnJlZXNwYWNlKHNobV90b2MgKnRvYykKLXsKLQl2b2xhdGlsZSBzaG1f dG9jICp2dG9jID0gdG9jOwotCVNpemUJCXRvdGFsX2J5dGVzOwotCVNpemUJCWFsbG9jYXRlZF9i eXRlczsKLQlTaXplCQluZW50cnk7Ci0JU2l6ZQkJdG9jX2J5dGVzOwotCi0JU3BpbkxvY2tBY3F1 aXJlKCZ0b2MtPnRvY19tdXRleCk7Ci0JdG90YWxfYnl0ZXMgPSB2dG9jLT50b2NfdG90YWxfYnl0 ZXM7Ci0JYWxsb2NhdGVkX2J5dGVzID0gdnRvYy0+dG9jX2FsbG9jYXRlZF9ieXRlczsKLQluZW50 cnkgPSB2dG9jLT50b2NfbmVudHJ5OwotCVNwaW5Mb2NrUmVsZWFzZSgmdG9jLT50b2NfbXV0ZXgp OwotCi0JdG9jX2J5dGVzID0gb2Zmc2V0b2Yoc2htX3RvYywgdG9jX2VudHJ5KSArIG5lbnRyeSAq IHNpemVvZihzaG1fdG9jX2VudHJ5KTsKLQlBc3NlcnQoYWxsb2NhdGVkX2J5dGVzICsgQlVGRkVS QUxJR04odG9jX2J5dGVzKSA8PSB0b3RhbF9ieXRlcyk7Ci0JcmV0dXJuIHRvdGFsX2J5dGVzIC0g KGFsbG9jYXRlZF9ieXRlcyArIEJVRkZFUkFMSUdOKHRvY19ieXRlcykpOwotfQotCiAvKgogICog SW5zZXJ0IGEgVE9DIGVudHJ5LgogICoKQEAgLTE5MSw3ICsxNjgsNiBAQCBzaG1fdG9jX2luc2Vy dChzaG1fdG9jICp0b2MsIHVpbnQ2NCBrZXksIHZvaWQgKmFkZHJlc3MpCiAKIAkvKiBDaGVjayBm b3IgbWVtb3J5IGV4aGF1c3Rpb24gYW5kIG92ZXJmbG93LiAqLwogCWlmICh0b2NfYnl0ZXMgKyBz aXplb2Yoc2htX3RvY19lbnRyeSkgPiB0b3RhbF9ieXRlcyB8fAotCQl0b2NfYnl0ZXMgKyBzaXpl b2Yoc2htX3RvY19lbnRyeSkgPCB0b2NfYnl0ZXMgfHwKIAkJbmVudHJ5ID49IFBHX1VJTlQzMl9N QVgpCiAJewogCQlTcGluTG9ja1JlbGVhc2UoJnRvYy0+dG9jX211dGV4KTsKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc2htX3RvYy5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9zaG1f dG9jLmgKaW5kZXggN2EyZjhlOTkzNC4uNWYyYWJjYzYxMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvc3RvcmFnZS9zaG1fdG9jLmgKKysrIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9zaG1fdG9jLmgK QEAgLTMwLDcgKzMwLDYgQEAgdHlwZWRlZiBzdHJ1Y3Qgc2htX3RvYyBzaG1fdG9jOwogZXh0ZXJu IHNobV90b2MgKnNobV90b2NfY3JlYXRlKHVpbnQ2NCBtYWdpYywgdm9pZCAqYWRkcmVzcywgU2l6 ZSBuYnl0ZXMpOwogZXh0ZXJuIHNobV90b2MgKnNobV90b2NfYXR0YWNoKHVpbnQ2NCBtYWdpYywg dm9pZCAqYWRkcmVzcyk7CiBleHRlcm4gdm9pZCAqc2htX3RvY19hbGxvY2F0ZShzaG1fdG9jICp0 b2MsIFNpemUgbmJ5dGVzKTsKLWV4dGVybiBTaXplIHNobV90b2NfZnJlZXNwYWNlKHNobV90b2Mg KnRvYyk7CiBleHRlcm4gdm9pZCBzaG1fdG9jX2luc2VydChzaG1fdG9jICp0b2MsIHVpbnQ2NCBr ZXksIHZvaWQgKmFkZHJlc3MpOwogZXh0ZXJuIHZvaWQgKnNobV90b2NfbG9va3VwKHNobV90b2Mg KnRvYywgdWludDY0IGtleSwgYm9vbCBub0Vycm9yKTsKIAotLSAKMi4zNC4xCgo= --63bfa9df_333ab105_17004--