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.96) (envelope-from ) id 1wAhib-000FCu-1K for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Apr 2026 05:14:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wAhiZ-003lqI-2g for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Apr 2026 05:14: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.96) (envelope-from ) id 1wAhiZ-003lqA-1g for pgsql-hackers@lists.postgresql.org; Thu, 09 Apr 2026 05:14:16 +0000 Received: from mail-oa1-x2b.google.com ([2001:4860:4864:20::2b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wAhiY-000000007nU-1kTs for pgsql-hackers@lists.postgresql.org; Thu, 09 Apr 2026 05:14:16 +0000 Received: by mail-oa1-x2b.google.com with SMTP id 586e51a60fabf-404254ffe8aso328000fac.0 for ; Wed, 08 Apr 2026 22:14:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775711651; cv=none; d=google.com; s=arc-20240605; b=DHRroQtugbL9pz24/+gA37C/pF55KKJhnUcXQtf9rfyX7hLbjTGL2/A3r0EFkL8Ewb p7Hw3yjnXUIgszve0WvzMyKbqKBAnS/RLr659HB9vBVkRT3A/iH8Dx6Bx4rZ0wyn3OrN sMPNfLjy7Z2WbAcA6qnYDmfsMuJgHhZCQVmXEOS6k/+PdughZy6EdqV9rM7onqeI01nu 9URsUJkdl9qASoHFAn64i22+q/jxoyxBB2Dx31VRGeQyCuGs8JSDOL0bSrFSC/3pbAS8 rjJqoUj/Ca24AsYkitjbZxBerP8sL40SMJmcAhUBw+BNzQP/po/lC7PuW4dqhWQ56fS8 M0HA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=f5x7dAchvHcIums7UqVQLz5SLloZnQhGEA+N03kIwmw=; fh=nwNxTtLLPTU0ewfLM7SSbrjMajMl+wwnFkCY/fi90vE=; b=jMEnj2pwRO1oEDTG2j6Qf6R/kEHYzM7lI5DdZZfJNo82sn4rusXXOpeTJBvdPEIMDX AWkl1phBtwYuTy7DqIrUMOIDceScuAyWnTmyepKb6Im8Wy9R2y4pnIjMZm0GFskiA7L6 iE4YAVPE8JYjRZPdPD2RUO3lIu2G0qXw7pu6TEmEzaxxbDnghCrRzBJ9IjTe0L/+SMZa 3J2SMIPTGiBYdAqejc0HiDIfnGwGeptJfx7/PWcpz4MzNmZwsSYnzvkQBGnZzTmpLy5K 62zR8NKtWkfJYRSX66+PGoo+42qZl/AN+PJFYqRwodWCao9h4WFTP6lCkfGhBdlvSiFD dt7Q==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775711651; x=1776316451; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=f5x7dAchvHcIums7UqVQLz5SLloZnQhGEA+N03kIwmw=; b=KjYjPxeD3oftH7izTlTxET15eBFNZUV0wuIL5qu7AhSqdSC4B+U2Y0HSWQH/7r/+r/ La3yYGGn0WTVHtqEaSm5q5mmpGItmycvhSPCUezk8743BU9PIv1PCoE4lDqp7FdQyHdS R//RFfR3B+yeHZXJ3UU4Jb9oU2rcEgt4SNVsGG8s98vRzH7lNUu2fdlCSHLdFQcd/l4B LuF2nS4AGRlWYTrNY0CrQ4gP5Lmf/73OmluUDQRr8emTfR4AlLwLEJq8LoBrhyi3Lb9I BlztGkm1VLCU4y/v206J8S6ry4TC2moo7YAdQLDoE7N57pmb87NW7OMZrcAS20PXgCbQ cowg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775711651; x=1776316451; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=f5x7dAchvHcIums7UqVQLz5SLloZnQhGEA+N03kIwmw=; b=dsha6rjqW+IrwIIBGHNedt1weB7ltaMordwY67ekMO4JsHZKQQ0nZafvCxFwCfxCT2 ufWSQ7wVUO0exuRqFlPyjmfLYYeHI1gX9/uJWH9sU4KeRsB+gyU1lr7fuBAkA8qk4sp3 yQfaMsZ/stVoGXC8d7TRXDgTRtSLY/1CxLb1shpOyD9v2/rhecgXAPX+mXcAbUw8Ge55 oB4i4Zh+HKyGEUAGxd/oKvBO5LIDXVVul+Ih5C+/P6xyyrx4RYntoLW0vVhirmy+EycE 05Lf0db0aRhBd4XmZBI7cSqHLVhoI4aet/GE+psifUpN45HDPUIjGfyGo+k7PuXI/Y2Y Tnlg== X-Gm-Message-State: AOJu0YxMtP+ootwVIPFRxOt1BXPMjDJAMwvJlRs78WHrXVWieFvz7fz2 ZY+/HnA6NOgHR2TP70DrkkZd0smMpbY7sshrb/YeFmz/X0YWbx9ySiMAFrjUCWI/YDtxkI29s7A eO3JXeJYh0lL6EE5GOzy5uWskry4K0oY4t0ew X-Gm-Gg: AeBDiev61nfL7Cfh07jUTXd1UBc8xq45CdNNVrKJqTbFBVPTYPEbTp2JY+tAZyf0RkZ yNW85KeMMFuhacdvyenJONjqP0M6yjbjM+zgPLIrl3I2YKF8xchbaZD5mObmgxSUgp1RFkUDqoF R858aEcB81/auObpUePV+xyVGJGJknG34WJKzIj4GFSwRM0gCyHwQx6rszyYabHn4LGOEhgsZ5g Qnb4EBB32be5nl/u6V81xId2+HyVPtnf4+486Cms9cl+mccpTc+OMTngARLxOMgIxYQI1GQ+2sh 5fzfr8k= X-Received: by 2002:a05:6871:3422:b0:41c:3ffe:eb05 with SMTP id 586e51a60fabf-423bd2b2c71mr1127215fac.28.1775711651553; Wed, 08 Apr 2026 22:14:11 -0700 (PDT) MIME-Version: 1.0 From: Xing Guo Date: Thu, 9 Apr 2026 13:13:59 +0800 X-Gm-Features: AQROBzCyVYV-cudMRQHs8nZeq6FdX5zwtLs_-aAsOsLNN2cENzc6DqpGMFSd0x4 Message-ID: Subject: [PATCH] Use mul_size for allocation products potentially to overflow To: pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000370016064f001660" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000370016064f001660 Content-Type: text/plain; charset="UTF-8" Hi hackers, I spotted several call sites multiplying runtime variables in palloc and they can potentially lead to overflow. I fixed them with mul_size() in backend codes and pg_mul_size_overflow() in frontend codes. Best Regards, Xing --000000000000370016064f001660 Content-Type: application/octet-stream; name="0001-Use-mul_size-for-allocation-products-potentially-to-.patch" Content-Disposition: attachment; filename="0001-Use-mul_size-for-allocation-products-potentially-to-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnr0qimd0 RnJvbSBlNThjYzI2NGUzMmJmY2Y5Njg4NDdlM2VlYzY4ZDA3ZmNjMTcwMzkwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBYaW5nIEd1byA8aGlndW94aW5nQGdtYWlsLmNvbT4KRGF0ZTog VGh1LCA5IEFwciAyMDI2IDExOjAwOjU0ICswODAwClN1YmplY3Q6IFtQQVRDSF0gVXNlIG11bF9z aXplIGZvciBhbGxvY2F0aW9uIHByb2R1Y3RzIHBvdGVudGlhbGx5IHRvIG92ZXJmbG93CgpTZXZl cmFsIGNhbGwgc2l0ZXMgbXVsdGlwbGllZCBydW50aW1lIGZhY3RvcnMgYmVmb3JlIHBhbGxvYzsg dXNlIG11bF9zaXplKCkKaW4gdGhlIGJhY2tlbmQgYW5kIHBnX211bF9zaXplX292ZXJmbG93KCkg aW4gdGhlIGZyb250ZW5kIGd6aXAgYWxsb2NhdG9yLgotLS0KIHNyYy9iYWNrZW5kL2JhY2t1cC9i YXNlYmFja3VwX2d6aXAuYyB8IDMgKystCiBzcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5j ICAgICAgfCAzICsrLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMgIHwgNCAr KystCiBzcmMvYmFja2VuZC91dGlscy9hZHQvdHNnaXN0aWR4LmMgICAgfCA3ICsrKystLS0KIHNy Yy9mZV91dGlscy9hc3RyZWFtZXJfZ3ppcC5jICAgICAgICB8IDggKysrKysrKy0KIDUgZmlsZXMg Y2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9iYWNrdXAvYmFzZWJhY2t1cF9nemlwLmMgYi9zcmMvYmFja2VuZC9iYWNrdXAv YmFzZWJhY2t1cF9nemlwLmMKaW5kZXggYzVlNGM0MTQzZTguLjFlYzJjMTNlYTdmIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9iYWNrdXAvYmFzZWJhY2t1cF9nemlwLmMKKysrIGIvc3JjL2JhY2tl bmQvYmFja3VwL2Jhc2ViYWNrdXBfZ3ppcC5jCkBAIC0xNyw2ICsxNyw3IEBACiAjZW5kaWYKIAog I2luY2x1ZGUgImJhY2t1cC9iYXNlYmFja3VwX3NpbmsuaCIKKyNpbmNsdWRlICJzdG9yYWdlL3No bWVtLmgiCiAKICNpZmRlZiBIQVZFX0xJQloKIHR5cGVkZWYgc3RydWN0IGJic2lua19nemlwCkBA IC0yOTcsNyArMjk4LDcgQEAgYmJzaW5rX2d6aXBfbWFuaWZlc3RfY29udGVudHMoYmJzaW5rICpz aW5rLCBzaXplX3QgbGVuKQogc3RhdGljIHZvaWQgKgogZ3ppcF9wYWxsb2Modm9pZCAqb3BhcXVl LCB1bnNpZ25lZCBpdGVtcywgdW5zaWduZWQgc2l6ZSkKIHsKLQlyZXR1cm4gcGFsbG9jKGl0ZW1z ICogc2l6ZSk7CisJcmV0dXJuIHBhbGxvYyhtdWxfc2l6ZShzaXplLCBpdGVtcykpOwogfQogCiAv KgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKaW5kZXggNTZiODdkODc4ZTguLmQyNTFjZDMwMmZmIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJub2Rl cy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJzdG9yYWdlL2lwYy5oIgogI2luY2x1ZGUgInN0b3Jh Z2UvbG1nci5oIgorI2luY2x1ZGUgInN0b3JhZ2Uvc2htZW0uaCIKICNpbmNsdWRlICJzdG9yYWdl L3Byb2MuaCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2NhcnJheS5oIgogI2luY2x1ZGUgInV0aWxz L2FjbC5oIgpAQCAtMTk5NCw3ICsxOTk1LDcgQEAgT3Blcm5hbWVHZXRDYW5kaWRhdGVzKExpc3Qg Km5hbWVzLCBjaGFyIG9wcmtpbmQsIGJvb2wgbWlzc2luZ19zY2hlbWFfb2ssCiAJCQkJCQkJICAy ICogc2l6ZW9mKE9pZCkpCiAKIAlpZiAoY2F0bGlzdC0+bl9tZW1iZXJzID4gMCkKLQkJcmVzdWx0 U3BhY2UgPSBwYWxsb2MoY2F0bGlzdC0+bl9tZW1iZXJzICogU1BBQ0VfUEVSX09QKTsKKwkJcmVz dWx0U3BhY2UgPSBwYWxsb2MobXVsX3NpemUoU1BBQ0VfUEVSX09QLCBjYXRsaXN0LT5uX21lbWJl cnMpKTsKIAogCWZvciAoaSA9IDA7IGkgPCBjYXRsaXN0LT5uX21lbWJlcnM7IGkrKykKIAl7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYyBiL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCmluZGV4IDNjYzBiMGJkZDkyLi5iNzM4YzA1Mzgz MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKKysrIGIv c3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKQEAgLTYyLDYgKzYyLDcgQEAKICNp bmNsdWRlICJzdG9yYWdlL3Byb2NsaXN0LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jc2lnbmFs LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9yZWFkX3N0cmVhbS5oIgorI2luY2x1ZGUgInN0b3JhZ2Uv c2htZW0uaCIKICNpbmNsdWRlICJzdG9yYWdlL3NtZ3IuaCIKICNpbmNsdWRlICJzdG9yYWdlL3N0 YW5kYnkuaCIKICNpbmNsdWRlICJ1dGlscy9tZW1kZWJ1Zy5oIgpAQCAtNDkyNSw3ICs0OTI2LDgg QEAgRHJvcFJlbGF0aW9uc0FsbEJ1ZmZlcnMoU01nclJlbGF0aW9uICpzbWdyX3JlbG4sIGludCBu bG9jYXRvcnMpCiAJICogZm9ya3MuCiAJICovCiAJYmxvY2sgPSAoQmxvY2tOdW1iZXIgKCopW01B WF9GT1JLTlVNICsgMV0pCi0JCXBhbGxvYyhzaXplb2YoQmxvY2tOdW1iZXIpICogbiAqIChNQVhf Rk9SS05VTSArIDEpKTsKKwkJcGFsbG9jKG11bF9zaXplKG11bF9zaXplKHNpemVvZihCbG9ja051 bWJlciksIChNQVhfRk9SS05VTSArIDEpKSwKKwkJCQkJCW4pKTsKIAogCS8qCiAJICogV2UgY2Fu IGF2b2lkIHNjYW5uaW5nIHRoZSBlbnRpcmUgYnVmZmVyIHBvb2wgaWYgd2Uga25vdyB0aGUgZXhh Y3Qgc2l6ZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2lzdGlkeC5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2lzdGlkeC5jCmluZGV4IGUzNWEyNTc5N2EwLi4zOGE4 MGFkNzJkMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2lzdGlkeC5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c2dpc3RpZHguYwpAQCAtMTgsNiArMTgsNyBAQAog I2luY2x1ZGUgImFjY2Vzcy9oZWFwdG9hc3QuaCIKICNpbmNsdWRlICJhY2Nlc3MvcmVsb3B0aW9u cy5oIgogI2luY2x1ZGUgImNvbW1vbi9pbnQuaCIKKyNpbmNsdWRlICJzdG9yYWdlL3NobWVtLmgi CiAjaW5jbHVkZSAibGliL3F1bmlxdWUuaCIKICNpbmNsdWRlICJwb3J0L3BnX2JpdHV0aWxzLmgi CiAjaW5jbHVkZSAidHNlYXJjaC90c191dGlscy5oIgpAQCAtNjI1LDcgKzYyNiw3IEBAIGd0c3Zl Y3Rvcl9waWNrc3BsaXQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQlzaXplX2JldGE7CiAJaW50MzIJ CXNpemVfd2FzdGUsCiAJCQkJd2FzdGUgPSAtMTsKLQlpbnQzMgkJbmJ5dGVzOworCVNpemUJCW5i eXRlczsKIAlPZmZzZXROdW1iZXIgc2VlZF8xID0gMCwKIAkJCQlzZWVkXzIgPSAwOwogCU9mZnNl dE51bWJlciAqbGVmdCwKQEAgLTYzOCwxMiArNjM5LDEyIEBAIGd0c3ZlY3Rvcl9waWNrc3BsaXQo UEdfRlVOQ1RJT05fQVJHUykKIAlTUExJVENPU1QgICpjb3N0dmVjdG9yOwogCiAJbWF4b2ZmID0g ZW50cnl2ZWMtPm4gLSAyOwotCW5ieXRlcyA9IChtYXhvZmYgKyAyKSAqIHNpemVvZihPZmZzZXRO dW1iZXIpOworCW5ieXRlcyA9IG11bF9zaXplKHNpemVvZihPZmZzZXROdW1iZXIpLCAobWF4b2Zm ICsgMikpOwogCXYtPnNwbF9sZWZ0ID0gKE9mZnNldE51bWJlciAqKSBwYWxsb2MobmJ5dGVzKTsK IAl2LT5zcGxfcmlnaHQgPSAoT2Zmc2V0TnVtYmVyICopIHBhbGxvYyhuYnl0ZXMpOwogCiAJY2Fj aGUgPSBwYWxsb2NfYXJyYXkoQ0FDSEVTSUdOLCBtYXhvZmYgKyAyKTsKLQljYWNoZV9zaWduID0g cGFsbG9jKHNpZ2xlbiAqIChtYXhvZmYgKyAyKSk7CisJY2FjaGVfc2lnbiA9IHBhbGxvYyhtdWxf c2l6ZShzaWdsZW4sIChtYXhvZmYgKyAyKSkpOwogCiAJZm9yIChqID0gMDsgaiA8IG1heG9mZiAr IDI7IGorKykKIAkJY2FjaGVbal0uc2lnbiA9ICZjYWNoZV9zaWduW3NpZ2xlbiAqIGpdOwpkaWZm IC0tZ2l0IGEvc3JjL2ZlX3V0aWxzL2FzdHJlYW1lcl9nemlwLmMgYi9zcmMvZmVfdXRpbHMvYXN0 cmVhbWVyX2d6aXAuYwppbmRleCBiYzNkNTMwNzZlMS4uZmZjNDFhNzUyMTkgMTAwNjQ0Ci0tLSBh L3NyYy9mZV91dGlscy9hc3RyZWFtZXJfZ3ppcC5jCisrKyBiL3NyYy9mZV91dGlscy9hc3RyZWFt ZXJfZ3ppcC5jCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8emxpYi5oPgogI2VuZGlmCiAK KyNpbmNsdWRlICJjb21tb24vaW50LmgiCiAjaW5jbHVkZSAiY29tbW9uL2xvZ2dpbmcuaCIKICNp bmNsdWRlICJmZV91dGlscy9hc3RyZWFtZXIuaCIKIApAQCAtMzgyLDcgKzM4MywxMiBAQCBhc3Ry ZWFtZXJfZ3ppcF9kZWNvbXByZXNzb3JfZnJlZShhc3RyZWFtZXIgKnN0cmVhbWVyKQogc3RhdGlj IHZvaWQgKgogZ3ppcF9wYWxsb2Modm9pZCAqb3BhcXVlLCB1bnNpZ25lZCBpdGVtcywgdW5zaWdu ZWQgc2l6ZSkKIHsKLQlyZXR1cm4gcGFsbG9jKGl0ZW1zICogc2l6ZSk7CisJc2l6ZV90IG5ieXRl czsKKworCWlmIChwZ19tdWxfc2l6ZV9vdmVyZmxvdygoc2l6ZV90KSBzaXplLCAoc2l6ZV90KSBp dGVtcywgJm5ieXRlcykpCisJCXBnX2ZhdGFsKCJnemlwIGxpYnJhcnkgcmVxdWVzdGVkIGludmFs aWQgYWxsb2NhdGlvbiBzaXplIik7CisKKwlyZXR1cm4gcGFsbG9jKG5ieXRlcyk7CiB9CiAKIC8q Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --000000000000370016064f001660--