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 1wAtiS-000Y0Z-0l for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Apr 2026 18:02:56 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wAtiP-00726h-1i for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Apr 2026 18:02:54 +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 1wAtiP-00726U-01 for pgsql-hackers@lists.postgresql.org; Thu, 09 Apr 2026 18:02:54 +0000 Received: from mail-ed1-x52b.google.com ([2a00:1450:4864:20::52b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wAtiN-00000000CcG-3FCa for pgsql-hackers@postgresql.org; Thu, 09 Apr 2026 18:02:53 +0000 Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-66c24b42efbso1787538a12.2 for ; Thu, 09 Apr 2026 11:02:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775757770; cv=none; d=google.com; s=arc-20240605; b=egNMS92w87SFCLKrIUtAIaM4qrEA59lv2jrOhPUmKwLSlQ6JXF5Uh5M+jwxn0vt9Uu RV0N0RAPK0LnZNoLVH28tJe4MEJ6uwhvkh8NF5HdPvqDiPLJ+6FBXRljYah9zeWyR3ur ofuIdxfA/XatZMUJICAM48P86tfxe70lm9cJPuSL49Vq/Am2/sUB8PJcAZtB8kNwBnJ+ fezy4Kt7NJmitditD3LZUx1KKZIwckwtcNqANW7Psd+plyWDg1FeUmBwYbhKypcGsNZg PfGNz/lX9dYkJI6WAIYLd/OJkFYMlZaLdAGHrsY4MhkW4gQcwWW/huKqXENxw81YmpRH k7ug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:mime-version:dkim-signature; bh=JHgcsyZi4K5PKpDewHc3Db7W6AJm40NHc4SxFcoaZaY=; fh=tOj9f2exnfjvXGG8KW+3xmP2WXnmXTRLhd9oRQ3FzFQ=; b=cV7IBHyohZaAVKY5XnmDCS+fTT7aJ4P93YPJAA1sfwDMdSakTkt7TZgWUhrCDkpixi Ky+cz5tVXBLa9MptVgGsb+Cx8uh6wE9bNbHH28Iq9+rQmafgmW12m+ZXPc+RcEjK+gY7 xe+ePuA7Cm1IvSgwOJ8d0SxIQO5vZ8d/axF1DXNwLldsnHZxPJpZ99pq0aoLJHAxyC0l sTk06Va0lDxLF3ZKb1XHFsAycgJMg6IxdB7nJQUW0V2yX8wvp5VctlOEuwcNc+9zvVdh bB2h9bTaBh/FVqkRY6uXjeWc/E1s9OW/N7WzKA8W93rnPt+coeo+RApMwQoCQZm8G1m1 hhZg==; darn=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=1775757770; x=1776362570; darn=postgresql.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=JHgcsyZi4K5PKpDewHc3Db7W6AJm40NHc4SxFcoaZaY=; b=fymqJvb0XKrHzNa3nCVVGxIyNPX1yVeF/5yatUrlgLOOoHJeZrbw0y0rqT+pMbhUu9 +F1GaDOEHc6MkLLAWKASEKf+cir0sWqNDsisDuFiZpNtug2J4i4JgxGxs3sW46sSageI /jEojkwfAf2ZEuxxGD2OnCN299VR7hf51i9vi3LwlR/4MWlNyDpLIisw57lHWtAWpRnu 3EzoJAeTU4xTKKj2uAGQQ4cy7WQInBUakNAkDzig61vFqaPWvJL4ecJsVT8Nm3umpBxV oU341ZlJQGZK2mDXCyZFXNshKDfKaEMH0hIdQDFLeLDHtxunIwCt8GMfKgDsqoIcIMha homA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775757770; x=1776362570; h=cc: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=JHgcsyZi4K5PKpDewHc3Db7W6AJm40NHc4SxFcoaZaY=; b=r7K1fpCl8DaZC6Pd5T11gwXPxLjUxYyOtXmEDZGK10OYKffEX+d7Le4rRTUFXwp/yR lIM/UP9YWU8AqA+IPx4tNssz+RrgsdibeDtHj1gW9N1OEFgMAUTnf+FEMZcO9NUX1y0r Dl2Se2z0DqtVIsNeugNrm1V/zqvHMKETslzAKoze3vGEllCiTozqoPC/6rc9TqNGYBJ8 By7SzguzZCpbprUKF5TLLDsh9tGMqIb0l8EvJMfgyVMaFOrg088XbeW0RhcQucyuyc9d tPfazCtg/GIxOBSqTTWiV96go+hw1spMKEKIIA/t5Tn/EEGroAi7BZ1U8zP6bYvwzfOX eqbw== X-Gm-Message-State: AOJu0YwJQx+2PaizXxpsg+GFenE/8mPDTQRthnFQXepPGa1EFmHnkAac 7SbqReQoYp/C+5tOKgTstSzA/Zt4pSI9VAg25t9BbxV+ua7hV7FSuU/s7CQFqaIO0is4X0o4p0I DRGjR0rc7tHskRwb+cgF1I416ZEQ6Szwwj0tV X-Gm-Gg: AeBDiesgndQLO+UK/lAUVENmg7777DPR/3iBt+XAu1cPfywKkRS1TdZAJudK2PGfP/6 mHhGN3YgzXxlQW3uLLwA2l1heuMDoBbioPhoCgKVDSDqqV9cIJE+wL/sNivJgV22WmGkT2XMAXw SFLNJkExLYoKMlR2ZJRy2T6GUFHrbQIVJh4cZfjMT/0H9RyC3hiFNM+oFBkItiM3GVwMQehQO/n Wh0Qw0J3coXXeqAduB/i3+b5E5aAMkMuXEtQZsGCBTEYzF6BupABewRy9U576BJI3rk22Q6G560 NTRWsNw2Fgg8gPEv X-Received: by 2002:a05:6402:50ce:b0:66c:17d5:c18f with SMTP id 4fb4d7f45d1cf-66e3f86ed59mr13047470a12.21.1775757769979; Thu, 09 Apr 2026 11:02:49 -0700 (PDT) MIME-Version: 1.0 From: Sami Imseih Date: Thu, 9 Apr 2026 13:02:37 -0500 X-Gm-Features: AQROBzA9uBWuJ-95M86z39oSlmK6EIxGz-asBaxPKC67ov7txpCc2Elpxxm-wjk Message-ID: Subject: Allow a condition string in an injection point To: pgsql-hackers Cc: Michael Paquier , Masahiko Sawada , Daniil Davydov <3danissimo@gmail.com> Content-Type: multipart/mixed; boundary="000000000000168783064f0ad384" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000168783064f0ad384 Content-Type: text/plain; charset="UTF-8" A follow-up to the discussion here [0], here is a patch that allows for an arbitrary string in injection points to be able to apply more granular filters for running an injection point. This will be useful for autovacuum testing as discussed in the referenced thread, and perhaps in some other places. The string is capped at 256 bytes which seems like a reasonable value. I considered using a flexible_array_member and to track the length, but that hardly seemed worth it at this stage. A case I envision, and there could be more is only run the injection point for a specific rel. ``` SELECT injection_points_attach('my-inj-pt', 'wait', 'tab1'); ``` ``` #ifdef USE_INJECTION_POINTS INJECTION_POINT("my-inj-pt", RelationGetRelationName(rel)); #endif ``` Worth noting, the condition types were changed to bit flags since we may need to combine conditions such as local injection point and string. typedef enum InjectionPointConditionType { - INJ_CONDITION_ALWAYS = 0, /* always run */ - INJ_CONDITION_PID, /* PID restriction */ + INJ_CONDITION_PID = 1 << 0, /* PID restriction */ + INJ_CONDITION_STRING = 1 << 1, /* generic string match against arg */ } InjectionPointConditionType; -- Sami [0] https://www.postgresql.org/message-id/adWcVrX3jrHPoCmD%40paquier.xyz --000000000000168783064f0ad384 Content-Type: application/octet-stream; name="v1-0001-Allow-a-condition-string-in-an-injection-point.patch" Content-Disposition: attachment; filename="v1-0001-Allow-a-condition-string-in-an-injection-point.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnrrolv00 RnJvbSAzMzE0OTUwNWRhYjRlN2I4ZjcwMjVlOWUzNzcxMWI5YmZiMzNjN2FkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW1pIEltc2VpaCA8c2FtaW1zZWloQGdtYWlsLmNvbT4KRGF0 ZTogVGh1LCA5IEFwciAyMDI2IDE3OjE5OjQ1ICswMDAwClN1YmplY3Q6IFtQQVRDSCB2MSAxLzFd IEFsbG93IGEgY29uZGl0aW9uIHN0cmluZyBpbiBhbiBpbmplY3Rpb24gcG9pbnQKClRoaXMgYWxs b3dzIGEgY2FsbGVyIG9mIEluamVjdGlvblBvaW50QXR0YWNoIHRvIHBhc3MKYW4gYXJiaXRyYXJ5 IHN0cmluZyB3aGljaCBjYW4gYmUgbGF0ZXIgbWF0Y2hlZCB3aGVuIHRoZQppbmplY3Rpb24gcG9p bnQgaXMgcnVuLiBUaGlzIGFsbG93cyBmb3IgbW9yZSBmbGV4aWJsZQpjb25kaXRpb25zIHRvIGJl IHVzZWQgZm9yIHJ1bm5pbmcgYW4gaW5qZWN0aW9uIHBvaW50LgpGb3IgZXhhbXBsZSwgdGhpcyBj b3VsZCBiZSB1c2VkIHRvIG1hdGNoIGJ5IGEgcmVsbmFtZQpvciBPSUQuIFRoZSBjb25kaXRpb24g c3RyaW5nIGlzIGNhcHBlZCBhdCAyNTYgYnl0ZXMKd2hpY2ggc2VlbXMgZ29vZCBlbm91Z2gsIGJ1 dCB0aGlzIGNvdWxkIGJlIGJ1bXBlZCB1cAppbiB0aGUgZnV0dXJlLiBVc2luZyBhIHZhcmlhYmxl LWxlbmd0aCBzdHJpbmcgbWF5IGJlCnVzZWZ1bCwgYnV0IHNlZW1lZCBoYXJkbHkgd29ydGggaXQg YXQgdGhpcyBwb2ludC4KLS0tCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2luamVjdGlvbl9wb2lu dC5jICAgICAgfCAgMSArCiAuLi4vZXhwZWN0ZWQvaW5qZWN0aW9uX3BvaW50cy5vdXQgICAgICAg ICAgICAgfCA2OCArKysrKysrKysrKysrKysrKysrCiAuLi4vaW5qZWN0aW9uX3BvaW50cy0tMS4w LnNxbCAgICAgICAgICAgICAgICAgfCAgNSArLQogLi4uL2luamVjdGlvbl9wb2ludHMvaW5qZWN0 aW9uX3BvaW50cy5jICAgICAgIHwgNTUgKysrKysrKysrLS0tLS0tCiAuLi4vaW5qZWN0aW9uX3Bv aW50cy9zcWwvaW5qZWN0aW9uX3BvaW50cy5zcWwgfCAxNyArKysrKwogNSBmaWxlcyBjaGFuZ2Vk LCAxMjQgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9pbmplY3Rpb25fcG9pbnQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21p c2MvaW5qZWN0aW9uX3BvaW50LmMKaW5kZXggOWQzMDg0M2ExMTEuLjI3MmVmNWU1NzhhIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2luamVjdGlvbl9wb2ludC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvaW5qZWN0aW9uX3BvaW50LmMKQEAgLTMyMiw2ICszMjIsNyBA QCBJbmplY3Rpb25Qb2ludEF0dGFjaChjb25zdCBjaGFyICpuYW1lLAogCXN0cmxjcHkoZW50cnkt Pm5hbWUsIG5hbWUsIHNpemVvZihlbnRyeS0+bmFtZSkpOwogCXN0cmxjcHkoZW50cnktPmxpYnJh cnksIGxpYnJhcnksIHNpemVvZihlbnRyeS0+bGlicmFyeSkpOwogCXN0cmxjcHkoZW50cnktPmZ1 bmN0aW9uLCBmdW5jdGlvbiwgc2l6ZW9mKGVudHJ5LT5mdW5jdGlvbikpOworCW1lbXNldChlbnRy eS0+cHJpdmF0ZV9kYXRhLCAwLCBJTkpfUFJJVkFURV9NQVhMRU4pOwogCWlmIChwcml2YXRlX2Rh dGEgIT0gTlVMTCkKIAkJbWVtY3B5KGVudHJ5LT5wcml2YXRlX2RhdGEsIHByaXZhdGVfZGF0YSwg cHJpdmF0ZV9kYXRhX3NpemUpOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL2luamVj dGlvbl9wb2ludHMvZXhwZWN0ZWQvaW5qZWN0aW9uX3BvaW50cy5vdXQgYi9zcmMvdGVzdC9tb2R1 bGVzL2luamVjdGlvbl9wb2ludHMvZXhwZWN0ZWQvaW5qZWN0aW9uX3BvaW50cy5vdXQKaW5kZXgg YTNjY2FlZTU0NzIuLjBmNWMxNzI2ZDNhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL2lu amVjdGlvbl9wb2ludHMvZXhwZWN0ZWQvaW5qZWN0aW9uX3BvaW50cy5vdXQKKysrIGIvc3JjL3Rl c3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2luamVjdGlvbl9wb2ludHMub3V0 CkBAIC0yNjIsNiArMjYyLDMyIEBAIE5PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVj dGlvbiBwb2ludCBUZXN0Q29uZGl0aW9uTG9jYWwyCiAgCiAoMSByb3cpCiAKKy0tIExvY2FsIGlu amVjdGlvbiBwb2ludCBjb25kaXRpb24gc3RyaW5nIG1hdGNoaW5nLgorU0VMRUNUIGluamVjdGlv bl9wb2ludHNfYXR0YWNoKCdUZXN0Q29uZGl0aW9uTG9jYWxTdHJpbmcnLCAnbm90aWNlJywgJ0xv Y2FsRGF0YScpOworIGluamVjdGlvbl9wb2ludHNfYXR0YWNoIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19ydW4oJ1Rlc3RD b25kaXRpb25Mb2NhbFN0cmluZycsICdMb2NhbERhdGEnKTsgLS0gbm90aWNlCitOT1RJQ0U6ICBu b3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgVGVzdENvbmRpdGlvbkxvY2FsU3Ry aW5nIChMb2NhbERhdGEpCisgaW5qZWN0aW9uX3BvaW50c19ydW4gCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3J1bignVGVzdENv bmRpdGlvbkxvY2FsU3RyaW5nJywgJ1dyb25nRGF0YScpOyAtLSBub3RoaW5nCisgaW5qZWN0aW9u X3BvaW50c19ydW4gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVD VCBpbmplY3Rpb25fcG9pbnRzX3J1bignVGVzdENvbmRpdGlvbkxvY2FsU3RyaW5nJywgTlVMTCk7 IC0tIG5vdGhpbmcKKyBpbmplY3Rpb25fcG9pbnRzX3J1biAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAKKygxIHJvdykKKwogU0VMRUNUIHBnX2JhY2tlbmRfcGlkKCkgQVMgb2xkcGlkIFxnc2V0 CiAtLSByZWxvYWQsIGxvY2FsIGluamVjdGlvbiBwb2ludHMgc2hvdWxkIGJlIGdvbmUuCiBcYwpA QCAtMjg1LDYgKzMxMSwxMiBAQCBTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19ydW4oJ1Rlc3RDb25k aXRpb25Mb2NhbDInKTsgLS0gbm90aGluZwogIAogKDEgcm93KQogCitTRUxFQ1QgaW5qZWN0aW9u X3BvaW50c19ydW4oJ1Rlc3RDb25kaXRpb25Mb2NhbFN0cmluZycsICdMb2NhbERhdGEnKTsgLS0g bm90aGluZworIGluamVjdGlvbl9wb2ludHNfcnVuIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IAorKDEgcm93KQorCiBTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19ydW4oJ1Rlc3RDb25kaXRpb25F cnJvcicpOyAtLSBlcnJvcgogRVJST1I6ICBlcnJvciB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBw b2ludCBUZXN0Q29uZGl0aW9uRXJyb3IKIFNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgn VGVzdENvbmRpdGlvbkVycm9yJyk7CkBAIC0zMDcsNiArMzM5LDQyIEBAIFNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX2RldGFjaCgnVGVzdENvbmRpdGlvbkxvY2FsMScpOwogIAogKDEgcm93KQogCist LSBpbmplY3Rpb24gcG9pbnQgY29uZGl0aW9uIHN0cmluZyBtYXRjaGluZy4KK1NFTEVDVCBpbmpl Y3Rpb25fcG9pbnRzX2F0dGFjaCgnVGVzdENvbmRpdGlvblN0cmluZycsICdub3RpY2UnLCAnTXlT dHJpbmcnKTsKKyBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIGluamVjdGlvbl9wb2ludHNfcnVuKCdUZXN0Q29u ZGl0aW9uU3RyaW5nJywgJ015U3RyaW5nJyk7IC0tIG5vdGljZQorTk9USUNFOiAgbm90aWNlIHRy aWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IFRlc3RDb25kaXRpb25TdHJpbmcgKE15U3RyaW5n KQorIGluamVjdGlvbl9wb2ludHNfcnVuIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEg cm93KQorCitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19ydW4oJ1Rlc3RDb25kaXRpb25TdHJpbmcn LCAnV3JvbmdTdHJpbmcnKTsgLS0gbm90aGluZworIGluamVjdGlvbl9wb2ludHNfcnVuIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50 c19ydW4oJ1Rlc3RDb25kaXRpb25TdHJpbmcnLCBOVUxMKTsgLS0gbm90aGluZworIGluamVjdGlv bl9wb2ludHNfcnVuIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxF Q1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ1Rlc3RDb25kaXRpb25TdHJpbmcnKTsKKyBpbmpl Y3Rpb25fcG9pbnRzX2RldGFjaCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJv dykKKworLS0gY29uZGl0aW9uIHN0cmluZyB0b28gbG9uZyBmb3IgYXR0YWNoLgorU0VMRUNUIGlu amVjdGlvbl9wb2ludHNfYXR0YWNoKCdUZXN0SW5qZWN0aW9uRXJyb3InLCAnZXJyb3InLCByZXBl YXQoJ2EnLCAyNTYpKTsKK0VSUk9SOiAgaW5qZWN0aW9uIHBvaW50IGNvbmRpdGlvbiBzdHJpbmcg dG9vIGxvbmcKK0RFVEFJTDogIGluamVjdGlvbiBwb2ludCBjb25kaXRpb24gc3RyaW5nIG11c3Qg YmUgbGVzcyB0aGFuIDI1NiBjaGFyYWN0ZXJzLgogLS0gRnVuY3Rpb24gdmFyaWFudCBmb3IgYXR0 YWNoLgogU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKHJlcGVhdCgnYScsIDY0KSwgJ2lu amVjdGlvbl9wb2ludHMnLAogICAnaW5qZWN0aW9uX25vdGljZScsIE5VTEwpOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2luamVjdGlvbl9wb2ludHMtLTEu MC5zcWwgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvaW5qZWN0aW9uX3BvaW50 cy0tMS4wLnNxbAppbmRleCA4NjFjNzM1NWQ0ZS4uMmVmYjMwN2Y1YmYgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9pbmplY3Rpb25fcG9pbnRzLS0xLjAuc3Fs CisrKyBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9pbmplY3Rpb25fcG9pbnRz LS0xLjAuc3FsCkBAIC05LDEwICs5LDExIEBACiAtLSBBdHRhY2hlcyB0aGUgYWN0aW9uIHRvIHRo ZSBnaXZlbiBpbmplY3Rpb24gcG9pbnQuCiAtLQogQ1JFQVRFIEZVTkNUSU9OIGluamVjdGlvbl9w b2ludHNfYXR0YWNoKElOIHBvaW50X25hbWUgVEVYVCwKLSAgICBJTiBhY3Rpb24gdGV4dCkKKyAg ICBJTiBhY3Rpb24gdGV4dCwKKyAgICBJTiBjb25kaXRpb25fc3RyaW5nIHRleHQgREVGQVVMVCBO VUxMKQogUkVUVVJOUyB2b2lkCiBBUyAnTU9EVUxFX1BBVEhOQU1FJywgJ2luamVjdGlvbl9wb2lu dHNfYXR0YWNoJwotTEFOR1VBR0UgQyBTVFJJQ1QgUEFSQUxMRUwgVU5TQUZFOworTEFOR1VBR0Ug QyBQQVJBTExFTCBVTlNBRkU7CiAKIC0tCiAtLSBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgpCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvaW5qZWN0aW9uX3Bv aW50cy5jIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2luamVjdGlvbl9wb2lu dHMuYwppbmRleCAwZjFhZjUxMzY3My4uMjJiOTAyYTQ3MjkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9pbmplY3Rpb25fcG9pbnRzLmMKKysrIGIvc3JjL3Rl c3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2luamVjdGlvbl9wb2ludHMuYwpAQCAtMzksNiAr MzksNyBAQCBQR19NT0RVTEVfTUFHSUM7CiAvKiBNYXhpbXVtIG51bWJlciBvZiB3YWl0cyB1c2Fi bGUgaW4gaW5qZWN0aW9uIHBvaW50cyBhdCBvbmNlICovCiAjZGVmaW5lIElOSl9NQVhfV0FJVAk4 CiAjZGVmaW5lIElOSl9OQU1FX01BWExFTgk2NAorI2RlZmluZSBJTkpfREFUQV9NQVhMRU4gMjU2 CiAKIC8qCiAgKiBDb25kaXRpb25zIHJlbGF0ZWQgdG8gaW5qZWN0aW9uIHBvaW50cy4gIFRoaXMg dHJhY2tzIGluIHNoYXJlZCBtZW1vcnkgdGhlCkBAIC01MSw4ICs1Miw4IEBAIFBHX01PRFVMRV9N QUdJQzsKICAqLwogdHlwZWRlZiBlbnVtIEluamVjdGlvblBvaW50Q29uZGl0aW9uVHlwZQogewot CUlOSl9DT05ESVRJT05fQUxXQVlTID0gMCwJLyogYWx3YXlzIHJ1biAqLwotCUlOSl9DT05ESVRJ T05fUElELAkJCS8qIFBJRCByZXN0cmljdGlvbiAqLworCUlOSl9DT05ESVRJT05fUElEID0gMSA8 PCAwLCAvKiBQSUQgcmVzdHJpY3Rpb24gKi8KKwlJTkpfQ09ORElUSU9OX1NUUklORyA9IDEgPDwg MSwJLyogZ2VuZXJpYyBzdHJpbmcgbWF0Y2ggYWdhaW5zdCBhcmcgKi8KIH0gSW5qZWN0aW9uUG9p bnRDb25kaXRpb25UeXBlOwogCiB0eXBlZGVmIHN0cnVjdCBJbmplY3Rpb25Qb2ludENvbmRpdGlv bgpAQCAtNjIsNiArNjMsOSBAQCB0eXBlZGVmIHN0cnVjdCBJbmplY3Rpb25Qb2ludENvbmRpdGlv bgogCiAJLyogSUQgb2YgdGhlIHByb2Nlc3Mgd2hlcmUgdGhlIGluamVjdGlvbiBwb2ludCBpcyBh bGxvd2VkIHRvIHJ1biAqLwogCWludAkJCXBpZDsKKworCS8qIFN0cmluZyB0byBtYXRjaCBhZ2Fp bnN0IHRoZSBhcmd1bWVudCBhdCBydW4gdGltZSAqLworCWNoYXIJCXN0cltJTkpfREFUQV9NQVhM RU5dOwogfSBJbmplY3Rpb25Qb2ludENvbmRpdGlvbjsKIAogLyoKQEAgLTE3MywyMSArMTc3LDIx IEBAIGluamVjdGlvbl9pbml0X3NobWVtKHZvaWQpCiAgKiBvdGhlcndpc2UuCiAgKi8KIHN0YXRp YyBib29sCi1pbmplY3Rpb25fcG9pbnRfYWxsb3dlZChjb25zdCBJbmplY3Rpb25Qb2ludENvbmRp dGlvbiAqY29uZGl0aW9uKQoraW5qZWN0aW9uX3BvaW50X2FsbG93ZWQoY29uc3QgSW5qZWN0aW9u UG9pbnRDb25kaXRpb24gKmNvbmRpdGlvbiwKKwkJCQkJCWNvbnN0IGNoYXIgKmFyZykKIHsKLQli b29sCQlyZXN1bHQgPSB0cnVlOwotCi0Jc3dpdGNoIChjb25kaXRpb24tPnR5cGUpCi0JewotCQlj YXNlIElOSl9DT05ESVRJT05fUElEOgotCQkJaWYgKE15UHJvY1BpZCAhPSBjb25kaXRpb24tPnBp ZCkKLQkJCQlyZXN1bHQgPSBmYWxzZTsKLQkJCWJyZWFrOwotCQljYXNlIElOSl9DT05ESVRJT05f QUxXQVlTOgotCQkJYnJlYWs7Ci0JfQotCi0JcmV0dXJuIHJlc3VsdDsKKwkvKiBkaWQgbm90IG1h dGNoIHRoZSBjb25kaXRpb24gUElEICovCisJaWYgKChjb25kaXRpb24tPnR5cGUgJiBJTkpfQ09O RElUSU9OX1BJRCkgJiYKKwkJTXlQcm9jUGlkICE9IGNvbmRpdGlvbi0+cGlkKQorCQlyZXR1cm4g ZmFsc2U7CisKKwkvKiBkaWQgbm90IG1hdGNoIHRoZSBjb25kaXRpb24gc3RyaW5nICovCisJaWYg KChjb25kaXRpb24tPnR5cGUgJiBJTkpfQ09ORElUSU9OX1NUUklORykgJiYKKwkJKGNvbmRpdGlv bi0+c3RyWzBdID09ICdcMCcgfHwKKwkJIGFyZyA9PSBOVUxMIHx8IHN0cmNtcChjb25kaXRpb24t PnN0ciwgYXJnKSAhPSAwKSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7CiB9CiAK IC8qCkBAIC0yMTksNyArMjIzLDcgQEAgaW5qZWN0aW9uX2Vycm9yKGNvbnN0IGNoYXIgKm5hbWUs IGNvbnN0IHZvaWQgKnByaXZhdGVfZGF0YSwgdm9pZCAqYXJnKQogCWNvbnN0IEluamVjdGlvblBv aW50Q29uZGl0aW9uICpjb25kaXRpb24gPSBwcml2YXRlX2RhdGE7CiAJY2hhcgkgICAqYXJnc3Ry ID0gYXJnOwogCi0JaWYgKCFpbmplY3Rpb25fcG9pbnRfYWxsb3dlZChjb25kaXRpb24pKQorCWlm ICghaW5qZWN0aW9uX3BvaW50X2FsbG93ZWQoY29uZGl0aW9uLCBhcmdzdHIpKQogCQlyZXR1cm47 CiAKIAlpZiAoYXJnc3RyKQpAQCAtMjM1LDcgKzIzOSw3IEBAIGluamVjdGlvbl9ub3RpY2UoY29u c3QgY2hhciAqbmFtZSwgY29uc3Qgdm9pZCAqcHJpdmF0ZV9kYXRhLCB2b2lkICphcmcpCiAJY29u c3QgSW5qZWN0aW9uUG9pbnRDb25kaXRpb24gKmNvbmRpdGlvbiA9IHByaXZhdGVfZGF0YTsKIAlj aGFyCSAgICphcmdzdHIgPSBhcmc7CiAKLQlpZiAoIWluamVjdGlvbl9wb2ludF9hbGxvd2VkKGNv bmRpdGlvbikpCisJaWYgKCFpbmplY3Rpb25fcG9pbnRfYWxsb3dlZChjb25kaXRpb24sIGFyZ3N0 cikpCiAJCXJldHVybjsKIAogCWlmIChhcmdzdHIpCkBAIC0yNTcsNyArMjYxLDcgQEAgaW5qZWN0 aW9uX3dhaXQoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qgdm9pZCAqcHJpdmF0ZV9kYXRhLCB2b2lk ICphcmcpCiAJaWYgKGlual9zdGF0ZSA9PSBOVUxMKQogCQlpbmplY3Rpb25faW5pdF9zaG1lbSgp OwogCi0JaWYgKCFpbmplY3Rpb25fcG9pbnRfYWxsb3dlZChjb25kaXRpb24pKQorCWlmICghaW5q ZWN0aW9uX3BvaW50X2FsbG93ZWQoY29uZGl0aW9uLCBhcmcpKQogCQlyZXR1cm47CiAKIAkvKgpA QCAtMzE4LDYgKzMyMiw3IEBAIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKFBHX0ZVTkNUSU9OX0FS R1MpCiB7CiAJY2hhcgkgICAqbmFtZSA9IHRleHRfdG9fY3N0cmluZyhQR19HRVRBUkdfVEVYVF9Q UCgwKSk7CiAJY2hhcgkgICAqYWN0aW9uID0gdGV4dF90b19jc3RyaW5nKFBHX0dFVEFSR19URVhU X1BQKDEpKTsKKwljaGFyCSAgICpzdHIgPSBQR19BUkdJU05VTEwoMikgPyBOVUxMIDogdGV4dF90 b19jc3RyaW5nKFBHX0dFVEFSR19URVhUX1BQKDIpKTsKIAljaGFyCSAgICpmdW5jdGlvbjsKIAlJ bmplY3Rpb25Qb2ludENvbmRpdGlvbiBjb25kaXRpb24gPSB7MH07CiAKQEAgLTMzMiwxMCArMzM3 LDIwIEBAIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlpZiAo aW5qZWN0aW9uX3BvaW50X2xvY2FsKQogCXsKLQkJY29uZGl0aW9uLnR5cGUgPSBJTkpfQ09ORElU SU9OX1BJRDsKKwkJY29uZGl0aW9uLnR5cGUgfD0gSU5KX0NPTkRJVElPTl9QSUQ7CiAJCWNvbmRp dGlvbi5waWQgPSBNeVByb2NQaWQ7CiAJfQogCisJaWYgKHN0cikKKwl7CisJCWlmIChzdHJsZW4o c3RyKSA+PSBJTkpfREFUQV9NQVhMRU4pCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJybXNn KCJpbmplY3Rpb24gcG9pbnQgY29uZGl0aW9uIHN0cmluZyB0b28gbG9uZyIpLAorCQkJCQkgZXJy ZGV0YWlsKCJpbmplY3Rpb24gcG9pbnQgY29uZGl0aW9uIHN0cmluZyBtdXN0IGJlIGxlc3MgdGhh biAlZCBjaGFyYWN0ZXJzLiIsIElOSl9EQVRBX01BWExFTikpKTsKKwkJY29uZGl0aW9uLnR5cGUg fD0gSU5KX0NPTkRJVElPTl9TVFJJTkc7CisJCXN0cmxjcHkoY29uZGl0aW9uLnN0ciwgc3RyLCBJ TkpfREFUQV9NQVhMRU4pOworCX0KKwogCUluamVjdGlvblBvaW50QXR0YWNoKG5hbWUsICJpbmpl Y3Rpb25fcG9pbnRzIiwgZnVuY3Rpb24sICZjb25kaXRpb24sCiAJCQkJCQkgc2l6ZW9mKEluamVj dGlvblBvaW50Q29uZGl0aW9uKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5q ZWN0aW9uX3BvaW50cy9zcWwvaW5qZWN0aW9uX3BvaW50cy5zcWwgYi9zcmMvdGVzdC9tb2R1bGVz L2luamVjdGlvbl9wb2ludHMvc3FsL2luamVjdGlvbl9wb2ludHMuc3FsCmluZGV4IGJhMTRkZjcw NmVmLi44MDU5MzZmNzA2NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25f cG9pbnRzL3NxbC9pbmplY3Rpb25fcG9pbnRzLnNxbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2lu amVjdGlvbl9wb2ludHMvc3FsL2luamVjdGlvbl9wb2ludHMuc3FsCkBAIC03Miw2ICs3MiwxMiBA QCBTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2goJ1Rlc3RDb25kaXRpb25Mb2NhbDInLCAn bm90aWNlJyk7CiBTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19ydW4oJ1Rlc3RDb25kaXRpb25Mb2Nh bDEnKTsgLS0gZXJyb3IKIFNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3J1bignVGVzdENvbmRpdGlv bkxvY2FsMicpOyAtLSBub3RpY2UKIAorLS0gTG9jYWwgaW5qZWN0aW9uIHBvaW50IGNvbmRpdGlv biBzdHJpbmcgbWF0Y2hpbmcuCitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2goJ1Rlc3RD b25kaXRpb25Mb2NhbFN0cmluZycsICdub3RpY2UnLCAnTG9jYWxEYXRhJyk7CitTRUxFQ1QgaW5q ZWN0aW9uX3BvaW50c19ydW4oJ1Rlc3RDb25kaXRpb25Mb2NhbFN0cmluZycsICdMb2NhbERhdGEn KTsgLS0gbm90aWNlCitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19ydW4oJ1Rlc3RDb25kaXRpb25M b2NhbFN0cmluZycsICdXcm9uZ0RhdGEnKTsgLS0gbm90aGluZworU0VMRUNUIGluamVjdGlvbl9w b2ludHNfcnVuKCdUZXN0Q29uZGl0aW9uTG9jYWxTdHJpbmcnLCBOVUxMKTsgLS0gbm90aGluZwor CiBTRUxFQ1QgcGdfYmFja2VuZF9waWQoKSBBUyBvbGRwaWQgXGdzZXQKIAogLS0gcmVsb2FkLCBs b2NhbCBpbmplY3Rpb24gcG9pbnRzIHNob3VsZCBiZSBnb25lLgpAQCAtODEsNiArODcsNyBAQCBT RUxFQ1QgcGdfYmFja2VuZF9waWQoKSBBUyBvbGRwaWQgXGdzZXQKIFNFTEVDVCB3YWl0X3BpZCg6 J29sZHBpZCcpOwogU0VMRUNUIGluamVjdGlvbl9wb2ludHNfcnVuKCdUZXN0Q29uZGl0aW9uTG9j YWwxJyk7IC0tIG5vdGhpbmcKIFNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3J1bignVGVzdENvbmRp dGlvbkxvY2FsMicpOyAtLSBub3RoaW5nCitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19ydW4oJ1Rl c3RDb25kaXRpb25Mb2NhbFN0cmluZycsICdMb2NhbERhdGEnKTsgLS0gbm90aGluZwogU0VMRUNU IGluamVjdGlvbl9wb2ludHNfcnVuKCdUZXN0Q29uZGl0aW9uRXJyb3InKTsgLS0gZXJyb3IKIFNF TEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnVGVzdENvbmRpdGlvbkVycm9yJyk7CiAtLSBB dHRhY2hpbmcgaW5qZWN0aW9uIHBvaW50cyB0aGF0IHVzZSB0aGUgc2FtZSBuYW1lIGFzIG9uZSBk ZWZpbmVkIGxvY2FsbHkKQEAgLTg4LDYgKzk1LDE2IEBAIFNFTEVDVCBpbmplY3Rpb25fcG9pbnRz X2RldGFjaCgnVGVzdENvbmRpdGlvbkVycm9yJyk7CiBTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19h dHRhY2goJ1Rlc3RDb25kaXRpb25Mb2NhbDEnLCAnZXJyb3InKTsKIFNFTEVDVCBpbmplY3Rpb25f cG9pbnRzX2RldGFjaCgnVGVzdENvbmRpdGlvbkxvY2FsMScpOwogCistLSBpbmplY3Rpb24gcG9p bnQgY29uZGl0aW9uIHN0cmluZyBtYXRjaGluZy4KK1NFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0 dGFjaCgnVGVzdENvbmRpdGlvblN0cmluZycsICdub3RpY2UnLCAnTXlTdHJpbmcnKTsKK1NFTEVD VCBpbmplY3Rpb25fcG9pbnRzX3J1bignVGVzdENvbmRpdGlvblN0cmluZycsICdNeVN0cmluZycp OyAtLSBub3RpY2UKK1NFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3J1bignVGVzdENvbmRpdGlvblN0 cmluZycsICdXcm9uZ1N0cmluZycpOyAtLSBub3RoaW5nCitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50 c19ydW4oJ1Rlc3RDb25kaXRpb25TdHJpbmcnLCBOVUxMKTsgLS0gbm90aGluZworU0VMRUNUIGlu amVjdGlvbl9wb2ludHNfZGV0YWNoKCdUZXN0Q29uZGl0aW9uU3RyaW5nJyk7CisKKy0tIGNvbmRp dGlvbiBzdHJpbmcgdG9vIGxvbmcgZm9yIGF0dGFjaC4KK1NFTEVDVCBpbmplY3Rpb25fcG9pbnRz X2F0dGFjaCgnVGVzdEluamVjdGlvbkVycm9yJywgJ2Vycm9yJywgcmVwZWF0KCdhJywgMjU2KSk7 CisKIC0tIEZ1bmN0aW9uIHZhcmlhbnQgZm9yIGF0dGFjaC4KIFNFTEVDVCBpbmplY3Rpb25fcG9p bnRzX2F0dGFjaChyZXBlYXQoJ2EnLCA2NCksICdpbmplY3Rpb25fcG9pbnRzJywKICAgJ2luamVj dGlvbl9ub3RpY2UnLCBOVUxMKTsKLS0gCjIuNTAuMQoK --000000000000168783064f0ad384--