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 1vYbm7-008enn-0K for pgsql-hackers@arkaria.postgresql.org; Thu, 25 Dec 2025 03:12:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vYbm5-006Q0b-26 for pgsql-hackers@arkaria.postgresql.org; Thu, 25 Dec 2025 03:12:26 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vYbm5-006Q0T-0j for pgsql-hackers@lists.postgresql.org; Thu, 25 Dec 2025 03:12:26 +0000 Received: from mail-lf1-x136.google.com ([2a00:1450:4864:20::136]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vYbm4-002UXU-00 for pgsql-hackers@lists.postgresql.org; Thu, 25 Dec 2025 03:12:24 +0000 Received: by mail-lf1-x136.google.com with SMTP id 2adb3069b0e04-5945510fd7aso5114413e87.0 for ; Wed, 24 Dec 2025 19:12:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1766632340; x=1767237140; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=3lVykfHL6Xc6tmYQ9xgBckG0vXa0hM9nFhln3Jyw6K8=; b=gjH69mrvS+c5nmD8TcB+jH6EKNjC5Ks3RbZxHws2sL1GqGiDawxQ7d+3WzayYNUG2M VVpEoMLVdurUTUqopegLSeuW1JIw0ipQFUUE+++5JcYIo7qGxyB1KWMxvPYVm8LPEmqk 6ThwgpTKiy0l0lIJEDmP4Q2QwV9eGYv7NpG8C3MezL2epKr8bfOj1/+mNuFaVCXfoWwe MrZfSnZVYGUEW1u2QOiCI9ZTiTdLz8ZDQyHjXwLrIUmuAtxLluiAXgi43Zn2vJUrvoxZ zd25MzLN8J+T/Utqj6QJJ1S5dSef/z0FvyXJvwo8mtiGhxgJNXtH8sguxwfm9t10MzFM mh5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766632340; x=1767237140; 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=3lVykfHL6Xc6tmYQ9xgBckG0vXa0hM9nFhln3Jyw6K8=; b=VMsRq3UmA0/onCk9LbaBMqIK603D9AOSfwgwXwC0bafvnjBJtV+BIKxVHZwidxyl3Z 2gTMC4vQXx7QpYFvT2vkckurJUAoT24+mzxTD9T4s61Hn6g9ygRwvS4DgdMpIqr1lu9c a8LAIXftRVAl0khh1apI3YAIEvVUxt8yiDnyfB53XD6CxQSglBqpy3/VNK9ZdNxoNWRB aCJxQePFwcVjdbK2OvgEGXxdZwmecWydtT0un9ts/2chsFBf3tGuXvwryrwSuro+DdCO ybN0lcOtQzHo6jDy++f7r7D7N8GpYg1lZdR/qCKMkeYBFcPZT2RinIy5QmpK2GT9htRv djlg== X-Gm-Message-State: AOJu0YxaJErbLKtHiAp1NzVfJPS0sVewJSaKMCAgI1bolyAhI2wngr/p WxoLByLB73YsuuehQla7URnDGtctLfWq6YV8LrhB2T65uVjwQUeFqlvXOk3WqBE/amiHcwMBprY I4dUNDO0k3vi9W0pzb6/bB5Xt1R2MJ7U/laGre+A= X-Gm-Gg: AY/fxX6UxJmUTYaMdJHh72T1jqpiT9BqlGGOvInB0XRs5hKBuBHQ1d+FBWoOuyTPuyg 6p3eP40D6P+FCSi+r++RAbiLBSCLQP+UAS401M9kZD1w3ERArM7dL7o43iz61IWEzElPptFS/BS KiH86ahg1djYnd5RlErms4c12taHBwsfQhY5RDPQ9aaSjiBkzWJ9/Ixb2NNZure9IQiltSbrvEa /UDb/6TL2Qnzr2NOIbztfYUpPf44xU8fhSeJPsZNnAPTrcRY3usiLl2aQq/8yO3ajdx5nFr X-Google-Smtp-Source: AGHT+IE6PVEqPgjgUcgQd8fwmRdvlfCZsJfvcZu9k9Bdgv2e3yQ+3OlBI56edAktheMGRHgiJFOfonaHl5+YpqVfd6g= X-Received: by 2002:a05:6512:b9a:b0:595:7cb8:3eae with SMTP id 2adb3069b0e04-59a17d96c6cmr7026635e87.20.1766632340171; Wed, 24 Dec 2025 19:12:20 -0800 (PST) MIME-Version: 1.0 From: Chao Li Date: Thu, 25 Dec 2025 11:12:07 +0800 X-Gm-Features: AQt7F2p-lUCFfddj3PnW1DkDHNDF-E8DhlYuETdohWFl-OZS3-z27gjgIGyJikw Message-ID: Subject: Trivial Fix: use palloc_array/repalloc_array for BufFile file arrays To: Postgres hackers Content-Type: multipart/mixed; boundary="00000000000015c5d90646be2584" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000015c5d90646be2584 Content-Type: multipart/alternative; boundary="00000000000015c5d80646be2582" --00000000000015c5d80646be2582 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Hackers, I noticed this error while working on [1]. In BufFile, the fields is claimed as an array: ``` struct BufFile { File *files; /* palloc'd array with numFiles entries */ ``` However, it=E2=80=99s allocated by palloc_object(): ``` file->files =3D palloc_object(File); ``` And reallocated by repalloc(): ``` file->files =3D (File *) repalloc(file->files, (file->numFiles + 1) * sizeof(File)); ``` This trivial patch just changes to use palloc_array/repalloc_array, which makes the intent clearer. Best regards, -- Chao Li (Evan) HighGo Software Co., Ltd. https://www.highgo.com/ --00000000000015c5d80646be2582 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
<= div>Hi Hackers,

I noticed this error while working= on [1].

In BufFile, the fields is claimed as an a= rray:
```
struct BufFile
{
=C2=A0 =C2=A0 F= ile *files; /* palloc'd array with numFiles entries */
```

However, it=E2=80=99s allocated b= y palloc_object():
```
file->files =3D palloc_object= (File);
```

And reallocated by repalloc(= ):
```
=C2=A0 =C2=A0 file->files =3D (File *) repall= oc(file->files,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (file->numFiles + 1) *= sizeof(File));
```

This trivial patch j= ust changes to use=C2=A0palloc_array/repalloc_array, which makes the intent= clearer.

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/




--00000000000015c5d80646be2582-- --00000000000015c5d90646be2584 Content-Type: application/octet-stream; name="v1-0001-Use-palloc_array-repalloc_array-for-BufFile-file-.patch" Content-Disposition: attachment; filename="v1-0001-Use-palloc_array-repalloc_array-for-BufFile-file-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mjkv8sjb0 RnJvbSBkMWE5MmM0YWVhZDg5ZTI3ZTRkZmQ1Yzg5MjM2NWE3YTg5NzNmNWRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVGh1LCAyNSBEZWMgMjAyNSAxMTowMDoyNiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjFdIFVz ZSBwYWxsb2NfYXJyYXkvcmVwYWxsb2NfYXJyYXkgZm9yIEJ1ZkZpbGUgZmlsZSBhcnJheXMKCk5v IGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkLgoKQXV0aG9yOiBDaGFvIExpIDxsaWNAaGlnaGdv LmNvbT4KLS0tCiBzcmMvYmFja2VuZC9zdG9yYWdlL2ZpbGUvYnVmZmlsZS5jIHwgMTAgKysrKy0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2ZpbGUvYnVmZmlsZS5jIGIvc3JjL2JhY2tl bmQvc3RvcmFnZS9maWxlL2J1ZmZpbGUuYwppbmRleCA4NWIzMTZkODc5ZC4uYzlkNWFjOGM5OTMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9idWZmaWxlLmMKKysrIGIvc3Jj L2JhY2tlbmQvc3RvcmFnZS9maWxlL2J1ZmZpbGUuYwpAQCAtMTQwLDcgKzE0MCw3IEBAIG1ha2VC dWZGaWxlKEZpbGUgZmlyc3RmaWxlKQogewogCUJ1ZkZpbGUgICAgKmZpbGUgPSBtYWtlQnVmRmls ZUNvbW1vbigxKTsKIAotCWZpbGUtPmZpbGVzID0gcGFsbG9jX29iamVjdChGaWxlKTsKKwlmaWxl LT5maWxlcyA9IHBhbGxvY19hcnJheShGaWxlLCAxKTsKIAlmaWxlLT5maWxlc1swXSA9IGZpcnN0 ZmlsZTsKIAlmaWxlLT5yZWFkT25seSA9IGZhbHNlOwogCWZpbGUtPmZpbGVzZXQgPSBOVUxMOwpA QCAtMTcxLDggKzE3MSw3IEBAIGV4dGVuZEJ1ZkZpbGUoQnVmRmlsZSAqZmlsZSkKIAogCUN1cnJl bnRSZXNvdXJjZU93bmVyID0gb2xkb3duZXI7CiAKLQlmaWxlLT5maWxlcyA9IChGaWxlICopIHJl cGFsbG9jKGZpbGUtPmZpbGVzLAotCQkJCQkJCQkJKGZpbGUtPm51bUZpbGVzICsgMSkgKiBzaXpl b2YoRmlsZSkpOworCWZpbGUtPmZpbGVzID0gcmVwYWxsb2NfYXJyYXkoZmlsZS0+ZmlsZXMsIEZp bGUsIGZpbGUtPm51bUZpbGVzICsgMSk7CiAJZmlsZS0+ZmlsZXNbZmlsZS0+bnVtRmlsZXNdID0g cGZpbGU7CiAJZmlsZS0+bnVtRmlsZXMrKzsKIH0KQEAgLTI3MSw3ICsyNzAsNyBAQCBCdWZGaWxl Q3JlYXRlRmlsZVNldChGaWxlU2V0ICpmaWxlc2V0LCBjb25zdCBjaGFyICpuYW1lKQogCWZpbGUg PSBtYWtlQnVmRmlsZUNvbW1vbigxKTsKIAlmaWxlLT5maWxlc2V0ID0gZmlsZXNldDsKIAlmaWxl LT5uYW1lID0gcHN0cmR1cChuYW1lKTsKLQlmaWxlLT5maWxlcyA9IHBhbGxvY19vYmplY3QoRmls ZSk7CisJZmlsZS0+ZmlsZXMgPSBwYWxsb2NfYXJyYXkoRmlsZSwgMSk7CiAJZmlsZS0+ZmlsZXNb MF0gPSBNYWtlTmV3RmlsZVNldFNlZ21lbnQoZmlsZSwgMCk7CiAJZmlsZS0+cmVhZE9ubHkgPSBm YWxzZTsKIApAQCAtOTEwLDggKzkwOSw3IEBAIEJ1ZkZpbGVBcHBlbmQoQnVmRmlsZSAqdGFyZ2V0 LCBCdWZGaWxlICpzb3VyY2UpCiAJaWYgKHRhcmdldC0+cmVzb3duZXIgIT0gc291cmNlLT5yZXNv d25lcikKIAkJZWxvZyhFUlJPUiwgImNvdWxkIG5vdCBhcHBlbmQgQnVmRmlsZSB3aXRoIG5vbi1t YXRjaGluZyByZXNvdXJjZSBvd25lciIpOwogCi0JdGFyZ2V0LT5maWxlcyA9IChGaWxlICopCi0J CXJlcGFsbG9jKHRhcmdldC0+ZmlsZXMsIHNpemVvZihGaWxlKSAqIG5ld051bUZpbGVzKTsKKwl0 YXJnZXQtPmZpbGVzID0gcmVwYWxsb2NfYXJyYXkodGFyZ2V0LT5maWxlcywgRmlsZSwgbmV3TnVt RmlsZXMpOwogCWZvciAoaSA9IHRhcmdldC0+bnVtRmlsZXM7IGkgPCBuZXdOdW1GaWxlczsgaSsr KQogCQl0YXJnZXQtPmZpbGVzW2ldID0gc291cmNlLT5maWxlc1tpIC0gdGFyZ2V0LT5udW1GaWxl c107CiAJdGFyZ2V0LT5udW1GaWxlcyA9IG5ld051bUZpbGVzOwotLSAKMi4zOS41IChBcHBsZSBH aXQtMTU0KQoK --00000000000015c5d90646be2584--