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 1wez5y-005Bf9-2N for pgsql-hackers@arkaria.postgresql.org; Wed, 01 Jul 2026 17:51:35 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wez5x-00FFYJ-1g for pgsql-hackers@arkaria.postgresql.org; Wed, 01 Jul 2026 17:51:33 +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 1wez5w-00FFYA-1a for pgsql-hackers@lists.postgresql.org; Wed, 01 Jul 2026 17:51:33 +0000 Received: from fhigh-b4-smtp.messagingengine.com ([202.12.124.155]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wez5t-00000001FM3-1H5f for pgsql-hackers@postgresql.org; Wed, 01 Jul 2026 17:51:32 +0000 Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45]) by mailfhigh.stl.internal (Postfix) with ESMTP id D52007A014D for ; Wed, 1 Jul 2026 13:51:25 -0400 (EDT) Received: from phl-imap-15 ([10.202.2.104]) by phl-compute-05.internal (MEProxy); Wed, 01 Jul 2026 13:51:25 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=partin.io; h=cc :content-type:content-type:date:date:from:from:in-reply-to :message-id:mime-version:reply-to:subject:subject:to:to; s=fm2; t=1782928285; x=1783014685; bh=QXam8ZwdatmaU5CL4xYZ/SLh/e8zlcB/ hWLgWFJG2lQ=; b=d97SEytUfc2hocbwOSwF7N9QTySWkVX1sFIpDVyASyucrqk8 lGt6OrSlRcD6SS88FYRULMb5HjmZyl2cI8OdwnzQh2w80HzqyRJ7R9lY79oPa5XM gg/dDlhh9mc7V2ch3oShQLm0dq8ciJ70Il4x3YRyosTAmArZeeWyVZ1pzdpKp2Mi NX6gmISGnwO2TCIAK1aGPkI69LvPu/4isaEUMOU0vWe+9ZsKG/+i7PU6k5xuFwoo 0CVCOnfOjZXGIKMFITGqFE/+XC4O0nY17ia09inN8FUtYfdeg+FuS5TV/AmJHJKd W87wopdJGoBI9nWn+mTCmbOVfGiQgDckeUyIkg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:message-id :mime-version:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1782928285; x= 1783014685; bh=QXam8ZwdatmaU5CL4xYZ/SLh/e8zlcB/hWLgWFJG2lQ=; b=P b/xv9AM9agcRVqy8zHACs0w43jge83raxGo59BJ58FFbUN7LxUOX/xRcs3CozFfD dJJvXnjl171ubwdCiMN3Z+0uttOjxiY0JZmavVVLChYQ7ro90IdBGHY1WKO3Az0L PT8jB7ufoXzFHUYI5Gm/Pi5m+qCZgTnrNZv66lqoy8K47yfUYjQm9ch6GdC6zpp1 5tTgz/iBkOGU1P+64R9VumsL8wlNDj9KzrFMsnsY1tJMAQDsLHUy+wDxrIEmrnjO hNJ+panvixaqJTrcK09VwEq1jOlU8IJeqN/FC5Y8uNJKpuw2N95j6mpElfEoTDs4 8KxdjMqG8b/gaO3o23dQw== X-ME-Sender: X-ME-Proxy-Cause: dmFkZTFkNtu9hmtZ/mgzUIc+yk8RmzYkkdvl8licXVLTbjUDGzqcH62N5UErBcO3ytvV8g 068+Hr7ydAI+W6OrqGI7PTjQiJZqkFd4IEG6ik7XR6rq4WeUeKt948e1OF6jiq+rb82Cas MA4UWo0bwl+tu0TIwHIr8h/ucKIelkKR0oV+PH+nCD+vtebUF7MJDHXCAVsIOvsLTdLy74 RtCS9txY0Ai4FglQFSgCXBP7/Nob3DCPamGnndz4p2nQW856fCtViBmnZAyy86gMVRB4bf X6W+EmiXDpT4gKqdNaNXXc/H6cs3opgEd4SOst+rzRKaaByWAz/Z7JlIs1BEIX95uCGUVC fuHmXBY0QOz+X5DXBegZGs37PAmTnYQIojxiua/opiXXdGDvxbZ6wonPivu0fQE9hbTGq+ fJz4Gagm8L1EzXhHuzwj4EzhqAu4zAcEWblOy/HmnrsTx4Vx/uQZg7ivMt6sYcVYAfY/Cr DH/JJM1GTZboR+fouCNJNyjq9LHwx0jfV3DDP/647NhGf+pckIWzaSswZmDGg2PwRvdQCz TFWLe2tM8YXROIKjKMuTTYaCuACx3hNRlNOUmr5qmSvOQ2W73FozjOsjiprnzpsayrsBEe n+lPR7d8s4SXDFWnVR2fJrLw5qunSWMrqIlm6OBJuFOdyHDQErlAiDZgpWUw X-ME-Proxy: Feedback-ID: idd01497b:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id 77F01780AB5; Wed, 1 Jul 2026 13:51:25 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface Content-Type: multipart/mixed; boundary=8ed1ac5783f6bd33f286aecaf8a8b278187d505dce6464b2b7ba9f8fcfff Mime-Version: 1.0 Date: Wed, 01 Jul 2026 17:51:25 +0000 Message-Id: Subject: Add malloc attribute to memory allocation functions To: "pgsql-hackers" From: "Tristan Partin" X-Mailer: aerc 0.21.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --8ed1ac5783f6bd33f286aecaf8a8b278187d505dce6464b2b7ba9f8fcfff Content-Type: multipart/alternative; boundary=69f48a87154a325f8e0f8c76774e23b12861395b808648de61b2ce3ed0a3 --69f48a87154a325f8e0f8c76774e23b12861395b808648de61b2ce3ed0a3 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8 Given that we now have a tree that compiles fine against=20 -Werror=3Dmismatched-dealloc, we need to make sure that we don't regress.= =20 By adding the malloc attribute[0], we can protect against regressions,=20 enable more accurate code coverage with -fanalyzer, and allow the=20 compiler to do some optimizations. Let me know if I missed any allocators. Additionally, does it make sense=20 to add the attribute to the various memory context allocator functions=20 like AllocSetAlloc(), or only on the higher level functions. [0]: https://gcc.gnu.org/onlinedocs/gcc/Common-Attributes.html#index-malloc --=20 Tristan Partin PostgreSQL Contributors Team AWS (https://aws.amazon.com) --69f48a87154a325f8e0f8c76774e23b12861395b808648de61b2ce3ed0a3-- --8ed1ac5783f6bd33f286aecaf8a8b278187d505dce6464b2b7ba9f8fcfff Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v1-0001-Add-malloc-attribute-to-memory-allocation-functio.patch Content-Type: text/x-patch; charset=utf-8; name=v1-0001-Add-malloc-attribute-to-memory-allocation-functio.patch RnJvbSA3NDNlY2E2MzE2NjM3M2Y2N2M0NTZjNGZiYjAxMGY1YWU2MWQyYjgzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUcmlzdGFuIFBhcnRpbiA8dHJpc3RhbkBwYXJ0aW4uaW8+CkRh dGU6IFdlZCwgMSBKdWwgMjAyNiAxNjozNDoxNCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggdjFdIEFk ZCBtYWxsb2MgYXR0cmlidXRlIHRvIG1lbW9yeSBhbGxvY2F0aW9uIGZ1bmN0aW9ucwoKR0NDIHN1 cHBvcnRzIGEgbWFsbG9jIGF0dHJpYnV0ZSB0aGF0IHRha2VzIGFuIG9wdGlvbmFsIGFyZ3VtZW50 IG9mIHRoZQphbGxvY2F0aW5nIGZ1bmN0aW9ucyBkZWFsbG9jYXRpb24gZnVuY3Rpb24uIFdpdGgg dGhpcyBhZGRpdGlvbmFsCmluZm9ybWF0aW9uLCBHQ0MgY2FuIGRvIGEgZmV3IHRoaW5ncyBmb3Ig dXM6CgotIFdhcm4gaWYgdGhlIGRlYWxsb2NhdGlvbiBmdW5jdGlvbiBpcyBub3QgbWF0Y2hlZCB0 byB0aGUgYWxsb2NhdGlvbgogIGZ1bmN0aW9uICgtV21pc21hdGNoZWQtZGVhbGxvYywgLVdhbmFs eXplci1taXNtYXRjaGluZy1kZWFsbG9jYXRpb24pCi0gV2FybiBpZiB0aGVyZSBpcyBhIHBhdGgg d291bGQgZG91YmxlIGZyZWUgbWVtb3J5CiAgKC1XYW5hbHl6ZXItZG91YmxlLWZyZWUpCi0gV2Fy biBpZiB0aGUgcmV0dXJuZWQgbWVtb3J5IGlzIG5vdCBjaGVja2VkIGZvciBOVUxMIGFuZCBpcwog IHN1YnNlcXVlbnRseSBwYXNzZWQgdG8gYSBub24tTlVMTCBhcmd1bWVudAogICgtV2FuYWx5emVy LXBvc3NpYmxlLW51bGwtZGVyZWZlcmVuY2UsCiAgLVdhbmFseXplci1wb3NzaWJsZS1udWxsLWFy Z3VtZW50KQotIFdhcm4gaWYgdGhlIG1lbW9yeSB3YXMgdXNlZCBhZnRlciBpdCB3YXMgZnJlZWQK ICAoLVdhbmFseXplci11c2UtYWZ0ZXItZnJlZSkKLSBXYXJuIGlmIHRoZSBtZW1vcnkgaXMgZXZl ciBsZWFrZWQgKC1XYW5hbHl6ZXItbWFsbG9jLWxlYWspCi0gV2FybiBpZiBhIGRlYWxsb2NhdGlv biBmdW5jdGlvbiBpcyBjYWxsZWQgb24gZ2xvYmFsIG9uLXN0YWNrIG1lbW9yeQogICgtV2FuYWx5 emVyLWZyZWUtb2Ytbm9uLWhlYXApCi0gT3B0aW1pemUgY2FsbGVycyBiZWNhdXNlIEdDQyBjYW4g YXNzdW1lIGJhc2VkIG9uIHRoZSBhbm5vdGF0aW9uIHRoYXQKICBtZW1vcnkgYWxsb2NhdGlvbiB3 aWxsIGZhaWwgZXh0cmVtZWx5IGluZnJlcXVlbnRseSwgbGlrZSBtYWxsb2MoMykKClNpZ25lZC1v ZmYtYnk6IFRyaXN0YW4gUGFydGluIDx0cmlzdGFuQHBhcnRpbi5pbz4KLS0tCiBzcmMvaW5jbHVk ZS9jLmggICAgICAgICAgICAgICAgICB8IDEyICsrKysrKysrKysrCiBzcmMvaW5jbHVkZS9jb21t b24vZmVfbWVtdXRpbHMuaCB8IDM2ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiBz cmMvaW5jbHVkZS91dGlscy9wYWxsb2MuaCAgICAgICB8IDM2ICsrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDM2IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2MuaCBiL3NyYy9pbmNsdWRlL2MuaApp bmRleCAwZTRhZWE1ZDVhLi4yZGQ1ZTcxM2FkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jLmgK KysrIGIvc3JjL2luY2x1ZGUvYy5oCkBAIC0yNzQsNiArMjc0LDE4IEBAIGV4dGVybiAiQysrIgog I2RlZmluZSBwZ19hdHRyaWJ1dGVfbm9fc2FuaXRpemVfYWxpZ25tZW50KCkKICNlbmRpZgogCisv KgorICogVGhlIG1hbGxvYyBmdW5jdGlvbiBhdHRyaWJ1dGUgaW5kaWNhdGVzIHRoYXQgdGhlIGZ1 bmN0aW9uIGlzIG1hbGxvYy1saWtlLgorICogQ2xhbmcgZG9lcyBub3QgY3VycmVudGx5IG1ha2Ug dXNlIG9mIHRoaXMgZnVuY3Rpb24gYXR0cmlidXRlLgorICoKKyAqIGh0dHBzOi8vZ2NjLmdudS5v cmcvb25saW5lZG9jcy9nY2MvQ29tbW9uLUF0dHJpYnV0ZXMuaHRtbCNpbmRleC1tYWxsb2MKKyAq LworI2lmIF9faGFzX2F0dHJpYnV0ZShtYWxsb2MpICYmICFkZWZpbmVkKF9fY2xhbmdfXykKKyNk ZWZpbmUgcGdfYXR0cmlidXRlX21hbGxvYyguLi4pIF9fYXR0cmlidXRlX18oKG1hbGxvYyhfX1ZB X0FSR1NfXykpKQorI2Vsc2UKKyNkZWZpbmUgcGdfYXR0cmlidXRlX21hbGxvYyguLi4pCisjZW5k aWYKKwogLyoKICAqIHBnX2F0dHJpYnV0ZV9ub25udWxsIG1lYW5zIHRoZSBjb21waWxlciBzaG91 bGQgd2FybiBpZiB0aGUgZnVuY3Rpb24gaXMKICAqIGNhbGxlZCB3aXRoIHRoZSBsaXN0ZWQgYXJn dW1lbnRzIHNldCB0byBOVUxMLiAgSWYgbm8gYXJndW1lbnRzIGFyZQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY29tbW9uL2ZlX21lbXV0aWxzLmggYi9zcmMvaW5jbHVkZS9jb21tb24vZmVfbWVt dXRpbHMuaAppbmRleCBkNWM2ZDM3YmI2Li43MmNhZjQ4OWQzIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jb21tb24vZmVfbWVtdXRpbHMuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tb24vZmVfbWVt dXRpbHMuaApAQCAtMzQsMjEgKzM0LDIxIEBACiAgKiAiU2FmZSIgbWVtb3J5IGFsbG9jYXRpb24g ZnVuY3Rpb25zIC0tLSB0aGVzZSBleGl0KDEpIG9uIGZhaWx1cmUKICAqIChleGNlcHQgcGdfbWFs bG9jX2V4dGVuZGVkIHdpdGggTUNYVF9BTExPQ19OT19PT00pCiAgKi8KLWV4dGVybiBjaGFyICpw Z19zdHJkdXAoY29uc3QgY2hhciAqaW4pOwotZXh0ZXJuIHZvaWQgKnBnX21hbGxvYyhzaXplX3Qg c2l6ZSk7Ci1leHRlcm4gdm9pZCAqcGdfbWFsbG9jMChzaXplX3Qgc2l6ZSk7Ci1leHRlcm4gdm9p ZCAqcGdfbWFsbG9jX2V4dGVuZGVkKHNpemVfdCBzaXplLCBpbnQgZmxhZ3MpOwotZXh0ZXJuIHZv aWQgKnBnX3JlYWxsb2Modm9pZCAqcHRyLCBzaXplX3Qgc2l6ZSk7CiBleHRlcm4gdm9pZCBwZ19m cmVlKHZvaWQgKnB0cik7CitleHRlcm4gY2hhciAqcGdfc3RyZHVwKGNvbnN0IGNoYXIgKmluKSBw Z19hdHRyaWJ1dGVfbWFsbG9jKHBnX2ZyZWUpOworZXh0ZXJuIHZvaWQgKnBnX21hbGxvYyhzaXpl X3Qgc2l6ZSkgcGdfYXR0cmlidXRlX21hbGxvYyhwZ19mcmVlKTsKK2V4dGVybiB2b2lkICpwZ19t YWxsb2MwKHNpemVfdCBzaXplKSBwZ19hdHRyaWJ1dGVfbWFsbG9jKHBnX2ZyZWUpOworZXh0ZXJu IHZvaWQgKnBnX21hbGxvY19leHRlbmRlZChzaXplX3Qgc2l6ZSwgaW50IGZsYWdzKSBwZ19hdHRy aWJ1dGVfbWFsbG9jKHBnX2ZyZWUpOworZXh0ZXJuIHZvaWQgKnBnX3JlYWxsb2Modm9pZCAqcHRy LCBzaXplX3Qgc2l6ZSk7CiAKIC8qCiAgKiBTdXBwb3J0IGZvciBzYWZlIGNhbGN1bGF0aW9uIG9m IG1lbW9yeSByZXF1ZXN0IHNpemVzCiAgKi8KIGV4dGVybiBTaXplIGFkZF9zaXplKFNpemUgczEs IFNpemUgczIpOwogZXh0ZXJuIFNpemUgbXVsX3NpemUoU2l6ZSBzMSwgU2l6ZSBzMik7Ci1leHRl cm4gdm9pZCAqcGdfbWFsbG9jX211bChTaXplIHMxLCBTaXplIHMyKTsKLWV4dGVybiB2b2lkICpw Z19tYWxsb2MwX211bChTaXplIHMxLCBTaXplIHMyKTsKLWV4dGVybiB2b2lkICpwZ19tYWxsb2Nf bXVsX2V4dGVuZGVkKFNpemUgczEsIFNpemUgczIsIGludCBmbGFncyk7CitleHRlcm4gdm9pZCAq cGdfbWFsbG9jX211bChTaXplIHMxLCBTaXplIHMyKSBwZ19hdHRyaWJ1dGVfbWFsbG9jKHBnX2Zy ZWUpOworZXh0ZXJuIHZvaWQgKnBnX21hbGxvYzBfbXVsKFNpemUgczEsIFNpemUgczIpIHBnX2F0 dHJpYnV0ZV9tYWxsb2MocGdfZnJlZSk7CitleHRlcm4gdm9pZCAqcGdfbWFsbG9jX211bF9leHRl bmRlZChTaXplIHMxLCBTaXplIHMyLCBpbnQgZmxhZ3MpIHBnX2F0dHJpYnV0ZV9tYWxsb2MocGdf ZnJlZSk7CiBleHRlcm4gdm9pZCAqcGdfcmVhbGxvY19tdWwodm9pZCAqcCwgU2l6ZSBzMSwgU2l6 ZSBzMik7CiAKIC8qCkBAIC03NSwxNiArNzUsMTYgQEAgZXh0ZXJuIHZvaWQgKnBnX3JlYWxsb2Nf bXVsKHZvaWQgKnAsIFNpemUgczEsIFNpemUgczIpOwogI2RlZmluZSBwZ19yZWFsbG9jX2FycmF5 KHBvaW50ZXIsIHR5cGUsIGNvdW50KSAoKHR5cGUgKikgcGdfcmVhbGxvY19tdWwocG9pbnRlciwg c2l6ZW9mKHR5cGUpLCBjb3VudCkpCiAKIC8qIEVxdWl2YWxlbnQgZnVuY3Rpb25zLCBkZWxpYmVy YXRlbHkgbmFtZWQgdGhlIHNhbWUgYXMgYmFja2VuZCBmdW5jdGlvbnMgKi8KLWV4dGVybiBjaGFy ICpwc3RyZHVwKGNvbnN0IGNoYXIgKmluKTsKLWV4dGVybiBjaGFyICpwbnN0cmR1cChjb25zdCBj aGFyICppbiwgU2l6ZSBzaXplKTsKLWV4dGVybiB2b2lkICpwYWxsb2MoU2l6ZSBzaXplKTsKLWV4 dGVybiB2b2lkICpwYWxsb2MwKFNpemUgc2l6ZSk7Ci1leHRlcm4gdm9pZCAqcGFsbG9jX2V4dGVu ZGVkKFNpemUgc2l6ZSwgaW50IGZsYWdzKTsKLWV4dGVybiB2b2lkICpyZXBhbGxvYyh2b2lkICpw b2ludGVyLCBTaXplIHNpemUpOwogZXh0ZXJuIHZvaWQgcGZyZWUodm9pZCAqcG9pbnRlcik7Ci1l eHRlcm4gdm9pZCAqcGFsbG9jX211bChTaXplIHMxLCBTaXplIHMyKTsKLWV4dGVybiB2b2lkICpw YWxsb2MwX211bChTaXplIHMxLCBTaXplIHMyKTsKLWV4dGVybiB2b2lkICpwYWxsb2NfbXVsX2V4 dGVuZGVkKFNpemUgczEsIFNpemUgczIsIGludCBmbGFncyk7CitleHRlcm4gY2hhciAqcHN0cmR1 cChjb25zdCBjaGFyICppbikgcGdfYXR0cmlidXRlX21hbGxvYyhwZnJlZSk7CitleHRlcm4gY2hh ciAqcG5zdHJkdXAoY29uc3QgY2hhciAqaW4sIFNpemUgc2l6ZSkgcGdfYXR0cmlidXRlX21hbGxv YyhwZnJlZSk7CitleHRlcm4gdm9pZCAqcGFsbG9jKFNpemUgc2l6ZSkgcGdfYXR0cmlidXRlX21h bGxvYyhwZnJlZSk7CitleHRlcm4gdm9pZCAqcGFsbG9jMChTaXplIHNpemUpIHBnX2F0dHJpYnV0 ZV9tYWxsb2MocGZyZWUpOworZXh0ZXJuIHZvaWQgKnBhbGxvY19leHRlbmRlZChTaXplIHNpemUs IGludCBmbGFncykgcGdfYXR0cmlidXRlX21hbGxvYyhwZnJlZSk7CitleHRlcm4gdm9pZCAqcmVw YWxsb2Modm9pZCAqcG9pbnRlciwgU2l6ZSBzaXplKTsKK2V4dGVybiB2b2lkICpwYWxsb2NfbXVs KFNpemUgczEsIFNpemUgczIpIHBnX2F0dHJpYnV0ZV9tYWxsb2MocGZyZWUpOworZXh0ZXJuIHZv aWQgKnBhbGxvYzBfbXVsKFNpemUgczEsIFNpemUgczIpIHBnX2F0dHJpYnV0ZV9tYWxsb2MocGZy ZWUpOworZXh0ZXJuIHZvaWQgKnBhbGxvY19tdWxfZXh0ZW5kZWQoU2l6ZSBzMSwgU2l6ZSBzMiwg aW50IGZsYWdzKSBwZ19hdHRyaWJ1dGVfbWFsbG9jKHBmcmVlKTsKIGV4dGVybiB2b2lkICpyZXBh bGxvY19tdWwodm9pZCAqcCwgU2l6ZSBzMSwgU2l6ZSBzMik7CiAKICNkZWZpbmUgcGFsbG9jX29i amVjdCh0eXBlKSAoKHR5cGUgKikgcGFsbG9jKHNpemVvZih0eXBlKSkpCkBAIC05NSw3ICs5NSw3 IEBAIGV4dGVybiB2b2lkICpyZXBhbGxvY19tdWwodm9pZCAqcCwgU2l6ZSBzMSwgU2l6ZSBzMik7 CiAjZGVmaW5lIHJlcGFsbG9jX2FycmF5KHBvaW50ZXIsIHR5cGUsIGNvdW50KSAoKHR5cGUgKikg cmVwYWxsb2NfbXVsKHBvaW50ZXIsIHNpemVvZih0eXBlKSwgY291bnQpKQogCiAvKiBzcHJpbnRm IGludG8gYSBwYWxsb2MnZCBidWZmZXIgLS0tIHRoZXNlIGFyZSBpbiBwc3ByaW50Zi5jICovCi1l eHRlcm4gY2hhciAqcHNwcmludGYoY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9w cmludGYoMSwgMik7CitleHRlcm4gY2hhciAqcHNwcmludGYoY29uc3QgY2hhciAqZm10LCAuLi4p IHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMikgcGdfYXR0cmlidXRlX21hbGxvYyhwZnJlZSk7CiBl eHRlcm4gc2l6ZV90IHB2c25wcmludGYoY2hhciAqYnVmLCBzaXplX3QgbGVuLCBjb25zdCBjaGFy ICpmbXQsIHZhX2xpc3QgYXJncykgcGdfYXR0cmlidXRlX3ByaW50ZigzLCAwKTsKIAogI2VuZGlm CQkJCQkJCS8qIEZFX01FTVVUSUxTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxz L3BhbGxvYy5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGFsbG9jLmgKaW5kZXggMGU5MzQxNThiNi4u ODE4MDI3MjYyOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcGFsbG9jLmgKKysrIGIv c3JjL2luY2x1ZGUvdXRpbHMvcGFsbG9jLmgKQEAgLTY4LDMxICs2OCwzMSBAQCBleHRlcm4gUEdE TExJTVBPUlQgTWVtb3J5Q29udGV4dCBDdXJyZW50TWVtb3J5Q29udGV4dDsKIC8qCiAgKiBGdW5k YW1lbnRhbCBtZW1vcnktYWxsb2NhdGlvbiBvcGVyYXRpb25zIChtb3JlIGFyZSBpbiB1dGlscy9t ZW11dGlscy5oKQogICovCi1leHRlcm4gdm9pZCAqTWVtb3J5Q29udGV4dEFsbG9jKE1lbW9yeUNv bnRleHQgY29udGV4dCwgU2l6ZSBzaXplKTsKLWV4dGVybiB2b2lkICpNZW1vcnlDb250ZXh0QWxs b2NaZXJvKE1lbW9yeUNvbnRleHQgY29udGV4dCwgU2l6ZSBzaXplKTsKK2V4dGVybiB2b2lkICpN ZW1vcnlDb250ZXh0QWxsb2MoTWVtb3J5Q29udGV4dCBjb250ZXh0LCBTaXplIHNpemUpIHBnX2F0 dHJpYnV0ZV9tYWxsb2MoKTsKK2V4dGVybiB2b2lkICpNZW1vcnlDb250ZXh0QWxsb2NaZXJvKE1l bW9yeUNvbnRleHQgY29udGV4dCwgU2l6ZSBzaXplKSBwZ19hdHRyaWJ1dGVfbWFsbG9jKCk7CiBl eHRlcm4gdm9pZCAqTWVtb3J5Q29udGV4dEFsbG9jRXh0ZW5kZWQoTWVtb3J5Q29udGV4dCBjb250 ZXh0LAotCQkJCQkJCQkJCVNpemUgc2l6ZSwgaW50IGZsYWdzKTsKKwkJCQkJCQkJCQlTaXplIHNp emUsIGludCBmbGFncykgcGdfYXR0cmlidXRlX21hbGxvYygpOwogZXh0ZXJuIHZvaWQgKk1lbW9y eUNvbnRleHRBbGxvY0FsaWduZWQoTWVtb3J5Q29udGV4dCBjb250ZXh0LAotCQkJCQkJCQkJICAg U2l6ZSBzaXplLCBTaXplIGFsaWdudG8sIGludCBmbGFncyk7CisJCQkJCQkJCQkgICBTaXplIHNp emUsIFNpemUgYWxpZ250bywgaW50IGZsYWdzKSBwZ19hdHRyaWJ1dGVfbWFsbG9jKCk7CiAKLWV4 dGVybiB2b2lkICpwYWxsb2MoU2l6ZSBzaXplKTsKLWV4dGVybiB2b2lkICpwYWxsb2MwKFNpemUg c2l6ZSk7Ci1leHRlcm4gdm9pZCAqcGFsbG9jX2V4dGVuZGVkKFNpemUgc2l6ZSwgaW50IGZsYWdz KTsKLWV4dGVybiB2b2lkICpwYWxsb2NfYWxpZ25lZChTaXplIHNpemUsIFNpemUgYWxpZ250bywg aW50IGZsYWdzKTsKK2V4dGVybiB2b2lkIHBmcmVlKHZvaWQgKnBvaW50ZXIpOworZXh0ZXJuIHZv aWQgKnBhbGxvYyhTaXplIHNpemUpIHBnX2F0dHJpYnV0ZV9tYWxsb2MocGZyZWUpOworZXh0ZXJu IHZvaWQgKnBhbGxvYzAoU2l6ZSBzaXplKSBwZ19hdHRyaWJ1dGVfbWFsbG9jKHBmcmVlKTsKK2V4 dGVybiB2b2lkICpwYWxsb2NfZXh0ZW5kZWQoU2l6ZSBzaXplLCBpbnQgZmxhZ3MpIHBnX2F0dHJp YnV0ZV9tYWxsb2MocGZyZWUpOworZXh0ZXJuIHZvaWQgKnBhbGxvY19hbGlnbmVkKFNpemUgc2l6 ZSwgU2l6ZSBhbGlnbnRvLCBpbnQgZmxhZ3MpIHBnX2F0dHJpYnV0ZV9tYWxsb2MocGZyZWUpOwog cGdfbm9kaXNjYXJkIGV4dGVybiB2b2lkICpyZXBhbGxvYyh2b2lkICpwb2ludGVyLCBTaXplIHNp emUpOwogcGdfbm9kaXNjYXJkIGV4dGVybiB2b2lkICpyZXBhbGxvY19leHRlbmRlZCh2b2lkICpw b2ludGVyLAogCQkJCQkJCQkJCQlTaXplIHNpemUsIGludCBmbGFncyk7CiBwZ19ub2Rpc2NhcmQg ZXh0ZXJuIHZvaWQgKnJlcGFsbG9jMCh2b2lkICpwb2ludGVyLCBTaXplIG9sZHNpemUsIFNpemUg c2l6ZSk7Ci1leHRlcm4gdm9pZCBwZnJlZSh2b2lkICpwb2ludGVyKTsKIAogLyoKICAqIFN1cHBv cnQgZm9yIHNhZmUgY2FsY3VsYXRpb24gb2YgbWVtb3J5IHJlcXVlc3Qgc2l6ZXMKICAqLwogZXh0 ZXJuIFNpemUgYWRkX3NpemUoU2l6ZSBzMSwgU2l6ZSBzMik7CiBleHRlcm4gU2l6ZSBtdWxfc2l6 ZShTaXplIHMxLCBTaXplIHMyKTsKLWV4dGVybiB2b2lkICpwYWxsb2NfbXVsKFNpemUgczEsIFNp emUgczIpOwotZXh0ZXJuIHZvaWQgKnBhbGxvYzBfbXVsKFNpemUgczEsIFNpemUgczIpOwotZXh0 ZXJuIHZvaWQgKnBhbGxvY19tdWxfZXh0ZW5kZWQoU2l6ZSBzMSwgU2l6ZSBzMiwgaW50IGZsYWdz KTsKK2V4dGVybiB2b2lkICpwYWxsb2NfbXVsKFNpemUgczEsIFNpemUgczIpIHBnX2F0dHJpYnV0 ZV9tYWxsb2MocGZyZWUpOworZXh0ZXJuIHZvaWQgKnBhbGxvYzBfbXVsKFNpemUgczEsIFNpemUg czIpIHBnX2F0dHJpYnV0ZV9tYWxsb2MocGZyZWUpOworZXh0ZXJuIHZvaWQgKnBhbGxvY19tdWxf ZXh0ZW5kZWQoU2l6ZSBzMSwgU2l6ZSBzMiwgaW50IGZsYWdzKSBwZ19hdHRyaWJ1dGVfbWFsbG9j KHBmcmVlKTsKIHBnX25vZGlzY2FyZCBleHRlcm4gdm9pZCAqcmVwYWxsb2NfbXVsKHZvaWQgKnAs IFNpemUgczEsIFNpemUgczIpOwogcGdfbm9kaXNjYXJkIGV4dGVybiB2b2lkICpyZXBhbGxvY19t dWxfZXh0ZW5kZWQodm9pZCAqcCwgU2l6ZSBzMSwgU2l6ZSBzMiwKIAkJCQkJCQkJCQkJCWludCBm bGFncyk7CkBAIC0xMjMsNyArMTIzLDcgQEAgcGdfbm9kaXNjYXJkIGV4dGVybiB2b2lkICpyZXBh bGxvY19tdWxfZXh0ZW5kZWQodm9pZCAqcCwgU2l6ZSBzMSwgU2l6ZSBzMiwKICNkZWZpbmUgcmVw YWxsb2NfYXJyYXlfZXh0ZW5kZWQocG9pbnRlciwgdHlwZSwgY291bnQsIGZsYWdzKSAoKHR5cGUg KikgcmVwYWxsb2NfbXVsX2V4dGVuZGVkKHBvaW50ZXIsIHNpemVvZih0eXBlKSwgY291bnQsIGZs YWdzKSkKIAogLyogSGlnaGVyLWxpbWl0IGFsbG9jYXRvcnMuICovCi1leHRlcm4gdm9pZCAqTWVt b3J5Q29udGV4dEFsbG9jSHVnZShNZW1vcnlDb250ZXh0IGNvbnRleHQsIFNpemUgc2l6ZSk7Citl eHRlcm4gdm9pZCAqTWVtb3J5Q29udGV4dEFsbG9jSHVnZShNZW1vcnlDb250ZXh0IGNvbnRleHQs IFNpemUgc2l6ZSkgcGdfYXR0cmlidXRlX21hbGxvYygpOwogcGdfbm9kaXNjYXJkIGV4dGVybiB2 b2lkICpyZXBhbGxvY19odWdlKHZvaWQgKnBvaW50ZXIsIFNpemUgc2l6ZSk7CiAKIC8qCkBAIC0x NTQsMTQgKzE1NCwxNCBAQCBleHRlcm4gdm9pZCBNZW1vcnlDb250ZXh0VW5yZWdpc3RlclJlc2V0 Q2FsbGJhY2soTWVtb3J5Q29udGV4dCBjb250ZXh0LAogICogVGhlc2UgYXJlIGxpa2Ugc3RhbmRh cmQgc3RyZHVwKCkgZXhjZXB0IHRoZSBjb3BpZWQgc3RyaW5nIGlzCiAgKiBhbGxvY2F0ZWQgaW4g YSBjb250ZXh0LCBub3Qgd2l0aCBtYWxsb2MoKS4KICAqLwotZXh0ZXJuIGNoYXIgKk1lbW9yeUNv bnRleHRTdHJkdXAoTWVtb3J5Q29udGV4dCBjb250ZXh0LCBjb25zdCBjaGFyICpzdHJpbmcpOwot ZXh0ZXJuIGNoYXIgKnBzdHJkdXAoY29uc3QgY2hhciAqaW4pOwotZXh0ZXJuIGNoYXIgKnBuc3Ry ZHVwKGNvbnN0IGNoYXIgKmluLCBTaXplIGxlbik7CitleHRlcm4gY2hhciAqTWVtb3J5Q29udGV4 dFN0cmR1cChNZW1vcnlDb250ZXh0IGNvbnRleHQsIGNvbnN0IGNoYXIgKnN0cmluZykgcGdfYXR0 cmlidXRlX21hbGxvYygpOworZXh0ZXJuIGNoYXIgKnBzdHJkdXAoY29uc3QgY2hhciAqaW4pIHBn X2F0dHJpYnV0ZV9tYWxsb2MocGZyZWUpOworZXh0ZXJuIGNoYXIgKnBuc3RyZHVwKGNvbnN0IGNo YXIgKmluLCBTaXplIGxlbikgcGdfYXR0cmlidXRlX21hbGxvYyhwZnJlZSk7CiAKLWV4dGVybiBj aGFyICpwY2hvbXAoY29uc3QgY2hhciAqaW4pOworZXh0ZXJuIGNoYXIgKnBjaG9tcChjb25zdCBj aGFyICppbikgcGdfYXR0cmlidXRlX21hbGxvYyhwZnJlZSk7CiAKIC8qIHNwcmludGYgaW50byBh IHBhbGxvYydkIGJ1ZmZlciAtLS0gdGhlc2UgYXJlIGluIHBzcHJpbnRmLmMgKi8KLWV4dGVybiBj aGFyICpwc3ByaW50Zihjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50Zigx LCAyKTsKK2V4dGVybiBjaGFyICpwc3ByaW50Zihjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0 cmlidXRlX3ByaW50ZigxLCAyKSBwZ19hdHRyaWJ1dGVfbWFsbG9jKHBmcmVlKTsKIGV4dGVybiBz aXplX3QgcHZzbnByaW50ZihjaGFyICpidWYsIHNpemVfdCBsZW4sIGNvbnN0IGNoYXIgKmZtdCwg dmFfbGlzdCBhcmdzKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDApOwogCiAjZW5kaWYJCQkJCQkJ LyogUEFMTE9DX0ggKi8KLS0gClRyaXN0YW4gUGFydGluCmh0dHBzOi8vdHJpc3Rhbi5wYXJ0aW4u aW8KCg== --8ed1ac5783f6bd33f286aecaf8a8b278187d505dce6464b2b7ba9f8fcfff--