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.94.2) (envelope-from ) id 1t27EI-001zUy-Je for pgsql-hackers@arkaria.postgresql.org; Sat, 19 Oct 2024 11:02:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1t27EG-001Ovb-3u for pgsql-hackers@arkaria.postgresql.org; Sat, 19 Oct 2024 11:02:40 +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.94.2) (envelope-from ) id 1t27EF-001OvT-Go for pgsql-hackers@lists.postgresql.org; Sat, 19 Oct 2024 11:02:40 +0000 Received: from mail-ej1-x62c.google.com ([2a00:1450:4864:20::62c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1t27EC-001gmv-8o for pgsql-hackers@lists.postgresql.org; Sat, 19 Oct 2024 11:02:38 +0000 Received: by mail-ej1-x62c.google.com with SMTP id a640c23a62f3a-a9a2cdc6f0cso362275166b.2 for ; Sat, 19 Oct 2024 04:02:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cybertec.at; s=cybertec.at; t=1729335754; x=1729940554; darn=lists.postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=h3VnW51tHZtcXPQcEkWWP8E2r1i0vdq3wXEEGVo53OM=; b=dovL7uyyDJfdRLKlmIG+NnD7XyXWaY13mmW1bAZcv5L6YCS7BXX3euo6tGIuqcs8Yn CDUwAk3p22e/wwEih+WB2WolwhpsUU8rnJoFQJAFbKWxqsERfq2VRYeCzVWA+qnOJ/C+ qL+rJzk0yKh+kJmPp0A/dpRnaXYar75aclkGs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729335754; x=1729940554; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=h3VnW51tHZtcXPQcEkWWP8E2r1i0vdq3wXEEGVo53OM=; b=MxG3QlA/MwIhVBoaKMxNHbMOgU4tzlON3Ln+WZVt5Z2r3dNtEbSvTBhE1J//Pdhegw JnayGcgnKSJYcte48HVHo4ho7HOeOGoutHwOpE6OJEYiNjQ5eYcOn04ZZElLu+pzlmfK 8whD2LrKBC+rHJHob7ph2FtvfY2pd/H7jbDzqrEnoj2lZEFQv6k83HzJGGv+3d7PlBtd nrrEAhi1PH1MI7lpTZbR2tvrRcl0IyKjbzhDvN1GD0KP/h6YN64OO05BGjLbNYqxk7JR 0e4mNlGjlAHIZoFljLVW34f56Mm+xc0gYLOVSEw3gSbdinQ/K2gHR0pE+eSrSszj4bXM fvaQ== X-Gm-Message-State: AOJu0YwL70azawz7Uhz+C7yPkB+iS35ULGV2Y8Ci4naarG3cLVZ4tOpR j79qjps5GMERnYPjBi648yJt1zXPUmQ/C2BUJeVta/SZvSLR5dpTHAJ3h31KHzU= X-Google-Smtp-Source: AGHT+IG6C0og0Lkh+0yMojNyt9XWhM8MbyGfj3Y/9az7OqpVl6eWJePjXRsc+UuznuYBgjW0pLI2hw== X-Received: by 2002:a17:907:948a:b0:a9a:222f:45d1 with SMTP id a640c23a62f3a-a9a69a78f48mr481038266b.20.1729335754171; Sat, 19 Oct 2024 04:02:34 -0700 (PDT) Received: from dynamic-pd01.res.v6.highway.a1.net ([2001:871:260:d113:55:5952:e2c:fde1]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a9a68a8dbd5sm202685566b.30.2024.10.19.04.02.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Oct 2024 04:02:33 -0700 (PDT) Message-ID: <6bca669972ef0d4a665fa83c5b751ab116324f8f.camel@cybertec.at> Subject: Re: Wrong security context for deferred triggers? From: Laurenz Albe To: Pavel Stehule Cc: pgsql-hackers@lists.postgresql.org Date: Sat, 19 Oct 2024 13:02:32 +0200 In-Reply-To: References: <77ee784cf248e842f74588418f55c2931e47bd78.camel@cybertec.at> <6f27f51bc98354d7254bbde1c171fa13aca03f28.camel@cybertec.at> <77b89e609f21380785865542609fbc14010021c8.camel@cybertec.at> <3f0a08f3e3d445137ae287125bc8c1a007045db8.camel@cybertec.at> <66021ca9d81c4e1a22b6c417659b05424e130f27.camel@cybertec.at> Content-Type: multipart/mixed; boundary="=-SkIPt5XsV9cUz9jLetfg" User-Agent: Evolution 3.52.4 (3.52.4-1.fc40) MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-SkIPt5XsV9cUz9jLetfg Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, 2024-10-19 at 06:17 +0200, Pavel Stehule wrote: > Maybe we should document so the trigger is executed with the identity use= d by DML command always, > when the trigger function has no SECURITY DEFINER flag? Good idea. Version 3 has documentation. Yours, Laurenz Albe --=-SkIPt5XsV9cUz9jLetfg Content-Disposition: attachment; filename="v3-0001-Make-AFTER-triggers-run-with-the-correct-user.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v3-0001-Make-AFTER-triggers-run-with-the-correct-user.patch"; charset="UTF-8" RnJvbSBmNmYwMmVlYzNkY2IyOTQ4MmM5N2E2YzQ5YzEzMWE0NzkxYTg3YjJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogU2F0LCAxOSBPY3QgMjAyNCAxMzowMTowMSArMDIwMApTdWJqZWN0OiBbUEFUQ0gg djNdIE1ha2UgQUZURVIgdHJpZ2dlcnMgcnVuIHdpdGggdGhlIGNvcnJlY3QgdXNlcgoKV2l0aCBk ZWZlcnJlZCB0cmlnZ2VycywgaXQgaXMgcG9zc2libGUgdGhhdCB0aGUgY3VycmVudCByb2xlIGNo YW5nZXMKYmV0d2VlbiB0aGUgdGltZSB3aGVuIHRoZSB0cmlnZ2VyIGlzIHF1ZXVlZCBhbmQgdGhl IHRpbWUgaXQgaXMKZXhlY3V0ZWQgKGZvciBleGFtcGxlLCB0aGUgdHJpZ2dlcmluZyBkYXRhIG1v ZGlmaWNhdGlvbiBjb3VsZCBoYXZlIGJlZW4KZXhlY3V0ZWQgaW4gYSBTRUNVUklUWSBERUZJTkVS IGZ1bmN0aW9uKS4KClVwIHRvIG5vdywgZGVmZXJyZWQgdHJpZ2dlciBmdW5jdGlvbnMgd291bGQg cnVuIHdpdGggdGhlIGN1cnJlbnQgcm9sZQpzZXQgdG8gd2hhdGV2ZXIgd2FzIGFjdGl2ZSBhdCBj b21taXQgdGltZS4gIFRoYXQgZG9lcyBub3QgbWF0dGVyIGZvcgpyZWd1bGFyIGNvbnN0cmFpbnRz LCB3aG9zZSBjb3JyZWN0bmVzcyBkb2Vzbid0IGRlcGVuZCBvbiB0aGUgY3VycmVudApyb2xlLiAg QnV0IGZvciB1c2VyLXdyaXR0ZW4gY29udHJhaW50IHRyaWdnZXJzLCB0aGUgY3VycmVudCByb2xl CmNlcnRhaW5seSBtYXR0ZXJzLgoKU2VjdXJpdHkgY29uc2lkZXJhdGlvbnM6Ci0gVGhlIHRyaWdn ZXIgZnVuY3Rpb24gY291bGQgYmUgbW9kaWZpZWQgYmV0d2VlbiB0aGUgdGltZSB0aGUgdHJpZ2dl cgogIGlzIHF1ZXVlZCBhbmQgdGhlIHRpbWUgaXQgcnVucy4gIElmIHRoZSB0cmlnZ2VyIHdhcyBl eGVjdXRlZCBieSBhCiAgcHJpdmlsZWdlZCB1c2VyLCB0aGUgbmV3IGJlaGF2aW9yIGNvdWxkIGJl IHVzZWQgZm9yIHByaXZpbGVnZQogIGVzY2FsYXRpb24uICBCdXQgaWYgYSBwcml2aWxlZ2VkIHVz ZXIgZXhlY3V0ZXMgRE1MIG9uIGEgdGFibGUgb3duZWQKICBieSBhbiB1bnRydXN0ZWQgdXNlciwg YWxsIGJldHMgYXJlIG9mZiBhbnl3YXkgLS0tIHRoZSBtYWxpY2lvdXMgY29kZQogIGNvdWxkIGFz IHdlbGwgYmUgaW4gdGhlIHRyaWdnZXIgZnVuY3Rpb24gZnJvbSB0aGUgYmVnaW5uaW5nLgogIFNv IHdlIGRvbid0IGNvbnNpZGVyIHRoaXMgYSBzZWN1cml0eSBoYXphcmQuCi0gVGhlIHByZXZpb3Vz IGJlaGF2aW9yIGNvdWxkIGxlYWQgdG8gY29kZSBpbmFkdmVydGVudGx5IHJ1bm5pbmcgd2l0aAog IGVsZXZhdGVkIHByaXZpbGVnZXMgaWYgYSBwcml2aWxlZ2VkIHVzZXIgdGVtcG9yYXJpbHkgYXNz dW1lcyBsb3dlcgogIHByaXZpbGVnZXMgd2hpbGUgZXhlY3V0aW5nIERNTCBvbiBhbiB1bnRydXN0 ZWQgdGFibGUsIGJ1dCB0aGUgZGVmZXJyZWQKICB0cmlnZ2VyIHJ1bnMgd2l0aCB0aGUgdXNlcidz IG9yaWdpbmFsIHByaXZpbGVnZXMuICBBbHNvLCB0aGF0IG9ubHkKICBhcHBsaWVzIGlmIHRoZSBw cml2aWxlZ2VkIHVzZXIgY29tbWl0cyAqYWZ0ZXIqIHJlc3VtaW5nIHRoZSBvcmlnaW5hbAogIHJv bGUuICBUaGlzIHNob3VsZCBiZSBzZWVuIGFzIGRlbGliZXJhdGUgc2VsZi1kYW1hZ2UgcmF0aGVy IHRoYW4gYQogIHNlY3VyaXR5IHByb2JsZW0uCgpBdXRob3I6IExhdXJlbnogQWxiZQpEaXNjdXNz aW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzc3ZWU3ODRjZjI0OGU4NDJmNzQ1ODg0MThmNTVjMjkz MWU0N2JkNzguY2FtZWwlNDBjeWJlcnRlYy5hdAotLS0KIGRvYy9zcmMvc2dtbC90cmlnZ2VyLnNn bWwgICAgICAgICAgICAgIHwgIDQgKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyAg ICAgICAgIHwgMzYgKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyaWdn ZXJzLm91dCB8IDgxICsrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC90cmlnZ2Vycy5zcWwgICAgICB8IDc1ICsrKysrKysrKysrKysrKysrKysrKysrKwogNCBm aWxlcyBjaGFuZ2VkLCAxOTYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC90cmlnZ2VyLnNnbWwgYi9kb2Mvc3JjL3NnbWwvdHJpZ2dlci5zZ21sCmluZGV4IGE5YWJhYWI5 MDU2Li5jM2MwZmFmN2ExYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3RyaWdnZXIuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvdHJpZ2dlci5zZ21sCkBAIC0xMjksNiArMTI5LDEwIEBACiAgICAg SW4gYWxsIGNhc2VzLCBhIHRyaWdnZXIgaXMgZXhlY3V0ZWQgYXMgcGFydCBvZiB0aGUgc2FtZSB0 cmFuc2FjdGlvbiBhcwogICAgIHRoZSBzdGF0ZW1lbnQgdGhhdCB0cmlnZ2VyZWQgaXQsIHNvIGlm IGVpdGhlciB0aGUgc3RhdGVtZW50IG9yIHRoZQogICAgIHRyaWdnZXIgY2F1c2VzIGFuIGVycm9y LCB0aGUgZWZmZWN0cyBvZiBib3RoIHdpbGwgYmUgcm9sbGVkIGJhY2suCisgICAgQWxzbywgdGhl IHRyaWdnZXIgd2lsbCBhbHdheXMgcnVuIGluIHRoZSBzZWN1cml0eSBjb250ZXh0IG9mIHRoZSBy b2xlCisgICAgdGhhdCBleGVjdXRlZCB0aGUgc3RhdGVtZW50IHRoYXQgY2F1c2VkIHRoZSB0cmln Z2VyIHRvIGZpcmUsIHVubGVzcworICAgIHRoZSB0cmlnZ2VyIGZ1bmN0aW9uIGlzIGRlZmluZWQg YXMgPGxpdGVyYWw+U0VDVVJJVFkgREVGSU5FUjwvbGl0ZXJhbD4sCisgICAgaW4gd2hpY2ggY2Fz ZSBpdCB3aWxsIHJ1biBhcyB0aGUgZnVuY3Rpb24gb3duZXIuCiAgICA8L3BhcmE+CiAKICAgIDxw YXJhPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCmluZGV4IDA5MzU2ZTQ2ZDE2Li5mNzYyZTQ4NGUyOCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RyaWdnZXIuYwpAQCAtMzYzNCw2ICszNjM0LDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgQWZ0ZXJUcmlnZ2VyU2hhcmVkRGF0YQogCVRyaWdnZXJFdmVudCBhdHNfZXZlbnQ7CQkvKiBl dmVudCB0eXBlIGluZGljYXRvciwgc2VlIHRyaWdnZXIuaCAqLwogCU9pZAkJCWF0c190Z29pZDsJ CS8qIHRoZSB0cmlnZ2VyJ3MgSUQgKi8KIAlPaWQJCQlhdHNfcmVsaWQ7CQkvKiB0aGUgcmVsYXRp b24gaXQncyBvbiAqLworCU9pZAkJCWF0c19yb2xpZDsJCS8qIHJvbGUgdG8gZXhlY3V0ZSB0aGUg dHJpZ2dlciAqLwogCUNvbW1hbmRJZAlhdHNfZmlyaW5nX2lkOwkvKiBJRCBmb3IgZmlyaW5nIGN5 Y2xlICovCiAJc3RydWN0IEFmdGVyVHJpZ2dlcnNUYWJsZURhdGEgKmF0c190YWJsZTsJLyogdHJh bnNpdGlvbiB0YWJsZSBhY2Nlc3MgKi8KIAlCaXRtYXBzZXQgICphdHNfbW9kaWZpZWRjb2xzOwkv KiBtb2RpZmllZCBjb2x1bW5zICovCkBAIC00MTE4LDYgKzQxMTksNyBAQCBhZnRlclRyaWdnZXJB ZGRFdmVudChBZnRlclRyaWdnZXJFdmVudExpc3QgKmV2ZW50cywKIAl7CiAJCWlmIChuZXdzaGFy ZWQtPmF0c190Z29pZCA9PSBldnRzaGFyZWQtPmF0c190Z29pZCAmJgogCQkJbmV3c2hhcmVkLT5h dHNfcmVsaWQgPT0gZXZ0c2hhcmVkLT5hdHNfcmVsaWQgJiYKKwkJCW5ld3NoYXJlZC0+YXRzX3Jv bGlkID09IGV2dHNoYXJlZC0+YXRzX3JvbGlkICYmCiAJCQluZXdzaGFyZWQtPmF0c19ldmVudCA9 PSBldnRzaGFyZWQtPmF0c19ldmVudCAmJgogCQkJbmV3c2hhcmVkLT5hdHNfdGFibGUgPT0gZXZ0 c2hhcmVkLT5hdHNfdGFibGUgJiYKIAkJCW5ld3NoYXJlZC0+YXRzX2ZpcmluZ19pZCA9PSAwKQpA QCAtNDI5Miw2ICs0Mjk0LDggQEAgQWZ0ZXJUcmlnZ2VyRXhlY3V0ZShFU3RhdGUgKmVzdGF0ZSwK IAlpbnQJCQl0Z2luZHg7CiAJYm9vbAkJc2hvdWxkX2ZyZWVfdHJpZyA9IGZhbHNlOwogCWJvb2wJ CXNob3VsZF9mcmVlX25ldyA9IGZhbHNlOworCU9pZAkJCXNhdmVfcm9saWQ7CisJaW50CQkJc2F2 ZV9zZWNfY29udGV4dDsKIAogCS8qCiAJICogTG9jYXRlIHRyaWdnZXIgaW4gdHJpZ2Rlc2MuICBJ dCBtaWdodCBub3QgYmUgcHJlc2VudCwgYW5kIGluIGZhY3QgdGhlCkBAIC00NDkxLDYgKzQ0OTUs MzMgQEAgQWZ0ZXJUcmlnZ2VyRXhlY3V0ZShFU3RhdGUgKmVzdGF0ZSwKIAogCU1lbW9yeUNvbnRl eHRSZXNldChwZXJfdHVwbGVfY29udGV4dCk7CiAKKwkvKgorCSAqIElmIHRoZSBjdXJyZW50IHJv bGUgd2FzIGRpZmZlcmVudCB3aGVuIHRoZSB0cmlnZ2VyIGdvdCBxdWV1ZWQsCisJICogdGVtcG9y YXJpbHkgY2hhbmdlIHRoZSBjdXJyZW50IHJvbGUuCisJICovCisJR2V0VXNlcklkQW5kU2VjQ29u dGV4dCgmc2F2ZV9yb2xpZCwgJnNhdmVfc2VjX2NvbnRleHQpOworCWlmIChzYXZlX3JvbGlkICE9 IGV2dHNoYXJlZC0+YXRzX3JvbGlkKQorCXsKKwkJSGVhcFR1cGxlCXR1cGxlOworCisJCS8qCisJ CSAqIFdlIGhhdmUgdG8gY2hlY2sgaWYgdGhlIHJvbGUgc3RpbGwgZXhpc3RzLiAgU2luY2UgdGhl IHRyaWdnZXIgcXVldWUKKwkJICogaXMgaW4gbWVtb3J5IG9ubHksIG5vIGRlcGVuZGVuY2llcyB0 byBkYXRhYmFzZSBvYmplY3RzIGFyZSB0cmFja2VkLAorCQkgKiBhbmQgdGhlIHJvbGUgY291bGQg aGF2ZSBiZWVuIGRyb3BwZWQgYWZ0ZXIgdGhlIHRyaWdnZXIgd2FzIHF1ZXVlZC4KKwkJICovCisJ CXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKEFVVEhPSUQsIE9iamVjdElkR2V0RGF0dW0oZXZ0c2hh cmVkLT5hdHNfcm9saWQpKTsKKworCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwbGUpKQorCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwK KwkJCQkJIGVycm1zZygiaW52YWxpZCByb2xlIE9JRDogJXUiLCBldnRzaGFyZWQtPmF0c19yb2xp ZCkpKTsKKworCQlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCisJCVNldFVzZXJJZEFuZFNlY0Nv bnRleHQoZXZ0c2hhcmVkLT5hdHNfcm9saWQsCisJCQkJCQkJICAgc2F2ZV9zZWNfY29udGV4dCB8 IFNFQ1VSSVRZX0xPQ0FMX1VTRVJJRF9DSEFOR0UpOworCX0KKwogCS8qCiAJICogQ2FsbCB0aGUg dHJpZ2dlciBhbmQgdGhyb3cgYXdheSBhbnkgcG9zc2libHkgcmV0dXJuZWQgdXBkYXRlZCB0dXBs ZS4KIAkgKiAoRG9uJ3QgbGV0IEV4ZWNDYWxsVHJpZ2dlckZ1bmMgbWVhc3VyZSBFWFBMQUlOIHRp bWUuKQpAQCAtNDUwNSw2ICs0NTM2LDEwIEBAIEFmdGVyVHJpZ2dlckV4ZWN1dGUoRVN0YXRlICpl c3RhdGUsCiAJCXJldHR1cGxlICE9IExvY1RyaWdnZXJEYXRhLnRnX25ld3R1cGxlKQogCQloZWFw X2ZyZWV0dXBsZShyZXR0dXBsZSk7CiAKKwkvKiByZXNldCB0aGUgY3VycmVudCByb2xlICovCisJ aWYgKHNhdmVfcm9saWQgIT0gZXZ0c2hhcmVkLT5hdHNfcm9saWQpCisJCVNldFVzZXJJZEFuZFNl Y0NvbnRleHQoc2F2ZV9yb2xpZCwgc2F2ZV9zZWNfY29udGV4dCk7CisKIAkvKgogCSAqIFJlbGVh c2UgcmVzb3VyY2VzCiAJICovCkBAIC02NDMwLDYgKzY0NjUsNyBAQCBBZnRlclRyaWdnZXJTYXZl RXZlbnQoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCiAJCQkodHJpZ2dl ci0+dGdpbml0ZGVmZXJyZWQgPyBBRlRFUl9UUklHR0VSX0lOSVRERUZFUlJFRCA6IDApOwogCQlu ZXdfc2hhcmVkLmF0c190Z29pZCA9IHRyaWdnZXItPnRnb2lkOwogCQluZXdfc2hhcmVkLmF0c19y ZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocmVsKTsKKwkJbmV3X3NoYXJlZC5hdHNfcm9saWQgPSBH ZXRVc2VySWQoKTsKIAkJbmV3X3NoYXJlZC5hdHNfZmlyaW5nX2lkID0gMDsKIAkJaWYgKCh0cmln Z2VyLT50Z29sZHRhYmxlIHx8IHRyaWdnZXItPnRnbmV3dGFibGUpICYmCiAJCQl0cmFuc2l0aW9u X2NhcHR1cmUgIT0gTlVMTCkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv dHJpZ2dlcnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmlnZ2Vycy5vdXQKaW5k ZXggYTA0NGQ2YWZlMjcuLmFlMTY2ZTQwMzE3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3RyaWdnZXJzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Ry aWdnZXJzLm91dApAQCAtMzcyOCwzICszNzI4LDg0IEBAIEluaGVyaXRzOiBwYXJlbnQKIAogZHJv cCB0YWJsZSBwYXJlbnQsIGNoaWxkOwogZHJvcCBmdW5jdGlvbiBmKCk7CistLSB0ZXN0IHdobyBy dW5zIGRlZmVycmVkIHRyaWdnZXIgZnVuY3Rpb25zCistLSBzZXR1cAorY3JlYXRlIHJvbGUgZ3Jv b3Q7CitjcmVhdGUgcm9sZSBvdXRpczsKK2NyZWF0ZSBmdW5jdGlvbiB3aG9hbWkoKSByZXR1cm5z IHRyaWdnZXIgbGFuZ3VhZ2UgcGxwZ3NxbAorYXMgJCQKK2JlZ2luCisgIHJhaXNlIHdhcm5pbmcg J0kgYW0gJScsIGN1cnJlbnRfdXNlcjsKKyAgcmV0dXJuIG51bGw7CitlbmQ7CiskJDsKK2FsdGVy IGZ1bmN0aW9uIHdob2FtaSgpIG93bmVyIHRvIG91dGlzOworY3JlYXRlIHRhYmxlIGRlZmVyX3Ry aWcgKGlkIGludGVnZXIpOworZ3JhbnQgaW5zZXJ0IG9uIGRlZmVyX3RyaWcgdG8gcHVibGljOwor Y3JlYXRlIGNvbnN0cmFpbnQgdHJpZ2dlciB3aG9hbWkgYWZ0ZXIgaW5zZXJ0IG9uIGRlZmVyX3Ry aWcKKyAgZGVmZXJyYWJsZSBpbml0aWFsbHkgZGVmZXJyZWQKKyAgZm9yIGVhY2ggcm93CisgIGV4 ZWN1dGUgZnVuY3Rpb24gd2hvYW1pKCk7CistLSBkZWZlcnJlZCB0cmlnZ2VycyBtdXN0IHJ1biBh cyB0aGUgdXNlciB0aGF0IHF1ZXVlZCB0aGUgdHJpZ2dlcgorYmVnaW47CitzZXQgcm9sZSBncm9v dDsKK2luc2VydCBpbnRvIGRlZmVyX3RyaWcgdmFsdWVzICgxKTsKK3Jlc2V0IHJvbGU7CitzZXQg cm9sZSBvdXRpczsKK2luc2VydCBpbnRvIGRlZmVyX3RyaWcgdmFsdWVzICgxKTsKK3Jlc2V0IHJv bGU7Citjb21taXQ7CitXQVJOSU5HOiAgSSBhbSBncm9vdAorV0FSTklORzogIEkgYW0gb3V0aXMK Ky0tIG1ha2Ugc3VyZSB0aGF0IHRoZSB1c2VyIHN0aWxsIGV4aXN0cyBhdCBjb21taXQgdGltZQor YmVnaW47CitzZXQgcm9sZSBncm9vdDsKK2luc2VydCBpbnRvIGRlZmVyX3RyaWcgdmFsdWVzICgx KTsKK3Jlc2V0IHJvbGU7Citkcm9wIHJvbGUgZ3Jvb3Q7CitkbyAkJAorYmVnaW4KKyAgLS0gY2F0 Y2ggdGhlIGV4ZWNwdGlvbiBiZWNhdXNlIGl0IGNvbnRhaW5zIHRoZSByb2xlIE9JRAorICBzZXQg Y29uc3RyYWludHMgYWxsIGltbWVkaWF0ZTsKK2V4Y2VwdGlvbiB3aGVuIHVuZGVmaW5lZF9vYmpl Y3QgdGhlbgorICByYWlzZSB3YXJuaW5nICd1c2VyIGRvZXMgbm90IGV4aXN0JzsKK2VuZDsKKyQk OworV0FSTklORzogIHVzZXIgZG9lcyBub3QgZXhpc3QKK3JvbGxiYWNrOworLS0gc2VjdXJpdHkg ZGVmaW5lciBmdW5jdGlvbnMgb3ZlcnJpZGUgdGhlIHVzZXIgd2hvIHF1ZXVlZCB0aGUgdHJpZ2dl cgorYWx0ZXIgZnVuY3Rpb24gd2hvYW1pKCkgc2VjdXJpdHkgZGVmaW5lcjsKK2JlZ2luOworc2V0 IHJvbGUgZ3Jvb3Q7CitpbnNlcnQgaW50byBkZWZlcl90cmlnIHZhbHVlcyAoMik7CityZXNldCBy b2xlOworY29tbWl0OworV0FSTklORzogIEkgYW0gb3V0aXMKK2FsdGVyIGZ1bmN0aW9uIHdob2Ft aSgpIHNlY3VyaXR5IGludm9rZXI7CistLSBtYWtlIHN1cmUgdGhlIGN1cnJlbnQgdXNlciBpcyBy ZXNldCBvbiBlcnJvcgorY3JlYXRlIG9yIHJlcGxhY2UgZnVuY3Rpb24gd2hvYW1pKCkgcmV0dXJu cyB0cmlnZ2VyIGxhbmd1YWdlIHBscGdzcWwKK2FzICQkCitiZWdpbgorICBwZXJmb3JtIDEgLyAw OworICByZXR1cm4gbnVsbDsKK2VuZDsKKyQkOworYmVnaW47CitzZXQgcm9sZSBncm9vdDsKK2lu c2VydCBpbnRvIGRlZmVyX3RyaWcgdmFsdWVzICgyKTsKK3Jlc2V0IHJvbGU7Citjb21taXQ7ICAt LSBlcnJvciBleHBlY3RlZAorRVJST1I6ICBkaXZpc2lvbiBieSB6ZXJvCitDT05URVhUOiAgU1FM IHN0YXRlbWVudCAiU0VMRUNUIDEgLyAwIgorUEwvcGdTUUwgZnVuY3Rpb24gd2hvYW1pKCkgbGlu ZSAzIGF0IFBFUkZPUk0KK3NlbGVjdCBjdXJyZW50X3VzZXIgPSBzZXNzaW9uX3VzZXI7CisgP2Nv bHVtbj8gCistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCistLSBjbGVhbiB1cAorZHJvcCB0YWJs ZSBkZWZlcl90cmlnOworZHJvcCBmdW5jdGlvbiB3aG9hbWkoKTsKK2Ryb3Agcm9sZSBvdXRpczsK K2Ryb3Agcm9sZSBncm9vdDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RyaWdn ZXJzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RyaWdnZXJzLnNxbAppbmRleCA1MTYxMDc4 OGIyMS4uODNjZTgzZmM0NzUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RyaWdn ZXJzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC90cmlnZ2Vycy5zcWwKQEAgLTI4MjAs MyArMjgyMCw3OCBAQCBhbHRlciB0cmlnZ2VyIHBhcmVudHRyaWcgb24gcGFyZW50IHJlbmFtZSB0 byBhbm90aGVydHJpZzsKIAogZHJvcCB0YWJsZSBwYXJlbnQsIGNoaWxkOwogZHJvcCBmdW5jdGlv biBmKCk7CisKKy0tIHRlc3Qgd2hvIHJ1bnMgZGVmZXJyZWQgdHJpZ2dlciBmdW5jdGlvbnMKKy0t IHNldHVwCitjcmVhdGUgcm9sZSBncm9vdDsKK2NyZWF0ZSByb2xlIG91dGlzOworY3JlYXRlIGZ1 bmN0aW9uIHdob2FtaSgpIHJldHVybnMgdHJpZ2dlciBsYW5ndWFnZSBwbHBnc3FsCithcyAkJAor YmVnaW4KKyAgcmFpc2Ugd2FybmluZyAnSSBhbSAlJywgY3VycmVudF91c2VyOworICByZXR1cm4g bnVsbDsKK2VuZDsKKyQkOworYWx0ZXIgZnVuY3Rpb24gd2hvYW1pKCkgb3duZXIgdG8gb3V0aXM7 CitjcmVhdGUgdGFibGUgZGVmZXJfdHJpZyAoaWQgaW50ZWdlcik7CitncmFudCBpbnNlcnQgb24g ZGVmZXJfdHJpZyB0byBwdWJsaWM7CitjcmVhdGUgY29uc3RyYWludCB0cmlnZ2VyIHdob2FtaSBh ZnRlciBpbnNlcnQgb24gZGVmZXJfdHJpZworICBkZWZlcnJhYmxlIGluaXRpYWxseSBkZWZlcnJl ZAorICBmb3IgZWFjaCByb3cKKyAgZXhlY3V0ZSBmdW5jdGlvbiB3aG9hbWkoKTsKKworLS0gZGVm ZXJyZWQgdHJpZ2dlcnMgbXVzdCBydW4gYXMgdGhlIHVzZXIgdGhhdCBxdWV1ZWQgdGhlIHRyaWdn ZXIKK2JlZ2luOworc2V0IHJvbGUgZ3Jvb3Q7CitpbnNlcnQgaW50byBkZWZlcl90cmlnIHZhbHVl cyAoMSk7CityZXNldCByb2xlOworc2V0IHJvbGUgb3V0aXM7CitpbnNlcnQgaW50byBkZWZlcl90 cmlnIHZhbHVlcyAoMSk7CityZXNldCByb2xlOworY29tbWl0OworCistLSBtYWtlIHN1cmUgdGhh dCB0aGUgdXNlciBzdGlsbCBleGlzdHMgYXQgY29tbWl0IHRpbWUKK2JlZ2luOworc2V0IHJvbGUg Z3Jvb3Q7CitpbnNlcnQgaW50byBkZWZlcl90cmlnIHZhbHVlcyAoMSk7CityZXNldCByb2xlOwor ZHJvcCByb2xlIGdyb290OworZG8gJCQKK2JlZ2luCisgIC0tIGNhdGNoIHRoZSBleGVjcHRpb24g YmVjYXVzZSBpdCBjb250YWlucyB0aGUgcm9sZSBPSUQKKyAgc2V0IGNvbnN0cmFpbnRzIGFsbCBp bW1lZGlhdGU7CitleGNlcHRpb24gd2hlbiB1bmRlZmluZWRfb2JqZWN0IHRoZW4KKyAgcmFpc2Ug d2FybmluZyAndXNlciBkb2VzIG5vdCBleGlzdCc7CitlbmQ7CiskJDsKK3JvbGxiYWNrOworCist LSBzZWN1cml0eSBkZWZpbmVyIGZ1bmN0aW9ucyBvdmVycmlkZSB0aGUgdXNlciB3aG8gcXVldWVk IHRoZSB0cmlnZ2VyCithbHRlciBmdW5jdGlvbiB3aG9hbWkoKSBzZWN1cml0eSBkZWZpbmVyOwor YmVnaW47CitzZXQgcm9sZSBncm9vdDsKK2luc2VydCBpbnRvIGRlZmVyX3RyaWcgdmFsdWVzICgy KTsKK3Jlc2V0IHJvbGU7Citjb21taXQ7CithbHRlciBmdW5jdGlvbiB3aG9hbWkoKSBzZWN1cml0 eSBpbnZva2VyOworCistLSBtYWtlIHN1cmUgdGhlIGN1cnJlbnQgdXNlciBpcyByZXNldCBvbiBl cnJvcgorY3JlYXRlIG9yIHJlcGxhY2UgZnVuY3Rpb24gd2hvYW1pKCkgcmV0dXJucyB0cmlnZ2Vy IGxhbmd1YWdlIHBscGdzcWwKK2FzICQkCitiZWdpbgorICBwZXJmb3JtIDEgLyAwOworICByZXR1 cm4gbnVsbDsKK2VuZDsKKyQkOworYmVnaW47CitzZXQgcm9sZSBncm9vdDsKK2luc2VydCBpbnRv IGRlZmVyX3RyaWcgdmFsdWVzICgyKTsKK3Jlc2V0IHJvbGU7Citjb21taXQ7ICAtLSBlcnJvciBl eHBlY3RlZAorc2VsZWN0IGN1cnJlbnRfdXNlciA9IHNlc3Npb25fdXNlcjsKKworLS0gY2xlYW4g dXAKK2Ryb3AgdGFibGUgZGVmZXJfdHJpZzsKK2Ryb3AgZnVuY3Rpb24gd2hvYW1pKCk7Citkcm9w IHJvbGUgb3V0aXM7Citkcm9wIHJvbGUgZ3Jvb3Q7Ci0tIAoyLjQ3LjAKCg== --=-SkIPt5XsV9cUz9jLetfg--