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 1u4CUh-009Bgm-SH for pgsql-hackers@arkaria.postgresql.org; Mon, 14 Apr 2025 05:36:32 +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 1u4CUf-00E19W-LI for pgsql-hackers@arkaria.postgresql.org; Mon, 14 Apr 2025 05:36:30 +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 <3danissimo@gmail.com>) id 1u4CUf-00E19N-7q for pgsql-hackers@lists.postgresql.org; Mon, 14 Apr 2025 05:36:30 +0000 Received: from mail-yw1-x1130.google.com ([2607:f8b0:4864:20::1130]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from <3danissimo@gmail.com>) id 1u4CUe-000E9y-0i for pgsql-hackers@postgresql.org; Mon, 14 Apr 2025 05:36:29 +0000 Received: by mail-yw1-x1130.google.com with SMTP id 00721157ae682-70433283ba7so36390877b3.2 for ; Sun, 13 Apr 2025 22:36:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744608987; x=1745213787; darn=postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=1d8HdLFggOq0ujI0iU2PHP9brwSwhedlIhxr4AhwM6I=; b=Q06u/64xzq6Cxr6rVvyy0n4dEu8eoxzm8i4IujDWVfkWGAWS6Euze+D/EBCNez954u ZNfnUHIV1YH2WrBc2SwEHK6xKDrUQ7Uy0Ou1W+QejwU2UJ/euTB2ulV5UpQ5l9XKeLe0 iL7+OVofPELBD+N95syqPMSXibYXgi3dOhWGpTNs5cceh/iq6JSX1+d/E93Yq3zfb+rG XNL4ZgR5PGbPhkHc2dqQC3aKF4RtYihpOObL2ODYySKjjjGx7ygdVDoaX8dOMyJPjcbz YmOnI+1FtNwbhlQyPZ6zbZ6O9NMSt2uoVl4aT6NL94B2Jg9XDcQXr6PE1n5eK44Ucl3g S3jg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744608987; x=1745213787; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=1d8HdLFggOq0ujI0iU2PHP9brwSwhedlIhxr4AhwM6I=; b=PQuDheb9+TNGkSUwrrKy81UtPvGaNoStBWwva7QGeopDVzwGMAMEQ8YiWK6PCmGho6 6U05fN6iwxvemEv63lrcqQsfj520Hpl0JIG4Jtsn1jfVZ2xeQnH/z8SAYVsBgvLk9GnI IEIXb8+yJ4wGacgH0d/FkaO+avsCHmYM++74T6m4q3P+EH/3hoBoL2wE8+6NWXRuhWmD 9M61woilvYnOHPdZ5qJ5np7aDxIh91t2i84MP1AKBYnVi9zcDtzVzRwb2fOn3o/+wSC6 U6FJ39fZmqw9jDdw2g07ItizCF3JlkQTCyqgRkz4tTsDLDL2CTsbwBqKWO+Yv4bj6Jj9 HfgQ== X-Gm-Message-State: AOJu0YyeJ1QQ6Aw4VnKQGRL5caLLhDLwsD/5SDI9qSMH1fxIArICxjH5 uVwU0vP9Ok4OWdsTUsl/melIp08qpMdPbvFhiUnI0QbgaxCu42wyTgrUbOcgbEDw8K0RBfF09Ka zsNlWDjYSO+mDHeuhEfhU29/psUv8II+i3WA= X-Gm-Gg: ASbGncssCTx0S8WEmVLi8ry3e+HfW5ywDDQNlhOJAQdjJ8OLJM/qaOR1FVEx4TiMpQl dw151JA7nVY1vLpwMGlMD/Z4khXIOVazmka2AC/dmh/zwyjMp+HavWdtkU9/uPQUuZfO1vPLvj0 +UGRDL2nwX224Z+huCWOFpKSQ= X-Google-Smtp-Source: AGHT+IFj68+WU4crnz3nfqlUlaosh348kTA5FewqsYq8J10B2/iU8enjWwerRSGD+317+jdLZwbqz9K9E/fJr0uxZOw= X-Received: by 2002:a05:690c:4889:b0:6fb:b37f:2072 with SMTP id 00721157ae682-70559a048d2mr179989057b3.22.1744608986991; Sun, 13 Apr 2025 22:36:26 -0700 (PDT) MIME-Version: 1.0 From: Daniil Davydov <3danissimo@gmail.com> Date: Mon, 14 Apr 2025 12:36:15 +0700 X-Gm-Features: ATxdqUGBPKQ98R8aXaIvAFpnCNjdTeAH7l8XpOzOVtPazUHC_fKytjGRfZC67RQ Message-ID: Subject: Fix bug with accessing to temporary tables of other sessions To: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000f142f50632b66e64" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000f142f50632b66e64 Content-Type: text/plain; charset="UTF-8" Hi, During previous commitfest this topic already has been discussed within the "Forbid to DROP temp tables of other sessions" thread [1]. Unfortunately its name doesn't reflect the real problem, so I decided to start a new thread, as David G. Johnston advised. Here are the summary results of the discussion [1] : The superuser is only allowed to DROP temporary relations of other sessions. Other commands (like SELECT, INSERT, UPDATE, DELETE ...) must be forbidden to him. Error message for this case will look like this : `could not access temporary relations of other sessions`. For now, superuser still can specify such operations because of a bug in the code that mistakenly recognizes other session's temp table as permanent (I've covered this topic in more detail in [2]). Attached patch fixes this bug (targeted on b51f86e49a7f119004c0ce5d0be89cdf98309141). Opened issue: Not everyone liked the idea that table's persistence can be assigned to table during makeRangeVarXXX calls (inside gram.y). My opinion - `As far as "pg_temp_" prefix is reserved by the postgres kernel, we can definitely say that we have encountered a temporary table when we see this prefix.` I will be glad to hear your opinion. -- Best regards, Daniil Davydov [1] https://www.postgresql.org/message-id/CAJDiXgj72Axj0d4ojKdRWG_rnkfs4uWY414NL%3D15sCvh7-9rwg%40mail.gmail.com [2] https://www.postgresql.org/message-id/CAJDiXgj%2B5UKLWSUT5605rJhuw438NmEKecvhFAF2nnrMsgGK3w%40mail.gmail.com --000000000000f142f50632b66e64 Content-Type: text/x-patch; charset="US-ASCII"; name="v5-0001-Fix-accessing-other-sessions-temp-tables.patch" Content-Disposition: attachment; filename="v5-0001-Fix-accessing-other-sessions-temp-tables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m9gk4szm0 RnJvbSBjMTQxNWU0NTdlZGQ4ZTFjZjM4ZmQ3OGFjNTVjOTNkYmQ4NjE3ZDU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBNb24sIDE0IEFwciAyMDI1IDExOjAxOjU2ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2NV0gRml4IGFjY2Vzc2luZyBvdGhlciBzZXNzaW9ucyB0ZW1wIHRhYmxlcwoKLS0tCiBzcmMv YmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jICB8IDU2ICsrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyB8ICAzICstCiBzcmMv YmFja2VuZC9ub2Rlcy9tYWtlZnVuY3MuYyAgICB8ICA2ICsrKy0KIHNyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkgICAgICAgIHwgMTEgKysrKysrLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3Bh Y2UuaCAgfCAgMiArKwogNSBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspLCAyMyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwppbmRleCBkOTdkNjMyYTdlZi4uZjQwN2Vm ZDk0NDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwpAQCAtNDk5LDI4ICs0OTksNDQgQEAgUmFu Z2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUg bG9ja21vZGUsCiAJCSAqLwogCQlpZiAocmVsYXRpb24tPnJlbHBlcnNpc3RlbmNlID09IFJFTFBF UlNJU1RFTkNFX1RFTVApCiAJCXsKLQkJCWlmICghT2lkSXNWYWxpZChteVRlbXBOYW1lc3BhY2Up KQotCQkJCXJlbElkID0gSW52YWxpZE9pZDsgLyogdGhpcyBwcm9iYWJseSBjYW4ndCBoYXBwZW4/ ICovCi0JCQllbHNlCi0JCQl7Ci0JCQkJaWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lKQotCQkJCXsK LQkJCQkJT2lkCQkJbmFtZXNwYWNlSWQ7CisJCQlPaWQJbmFtZXNwYWNlSWQ7CiAKLQkJCQkJbmFt ZXNwYWNlSWQgPSBMb29rdXBFeHBsaWNpdE5hbWVzcGFjZShyZWxhdGlvbi0+c2NoZW1hbmFtZSwg bWlzc2luZ19vayk7CisJCQlpZiAocmVsYXRpb24tPnNjaGVtYW5hbWUpCisJCQl7CisJCQkJbmFt ZXNwYWNlSWQgPSBMb29rdXBFeHBsaWNpdE5hbWVzcGFjZShyZWxhdGlvbi0+c2NoZW1hbmFtZSwg bWlzc2luZ19vayk7CiAKKwkJCQkvKgorCQkJCSAqIElmIHRoZSB1c2VyIGhhcyBzcGVjaWZpZWQg YW4gZXhpc3RpbmcgdGVtcG9yYXJ5IHNjaGVtYQorCQkJCSAqIG93bmVkIGJ5IGFub3RoZXIgdXNl ci4KKwkJCQkgKi8KKwkJCQlpZiAoT2lkSXNWYWxpZChuYW1lc3BhY2VJZCkgJiYgbmFtZXNwYWNl SWQgIT0gbXlUZW1wTmFtZXNwYWNlKQorCQkJCXsKIAkJCQkJLyoKLQkJCQkJICogRm9yIG1pc3Np bmdfb2ssIGFsbG93IGEgbm9uLWV4aXN0ZW50IHNjaGVtYSBuYW1lIHRvCi0JCQkJCSAqIHJldHVy biBJbnZhbGlkT2lkLgorCQkJCQkgKiBXZSBkb24ndCBhbGxvdyB1c2VycyB0byBhY2Nlc3MgdGVt cCB0YWJsZXMgb2Ygb3RoZXIKKwkJCQkJICogc2Vzc2lvbnMgZXhjZXB0IGZvciB0aGUgY2FzZSBv ZiBkcm9wcGluZyB0YWJsZXMuCiAJCQkJCSAqLwotCQkJCQlpZiAobmFtZXNwYWNlSWQgIT0gbXlU ZW1wTmFtZXNwYWNlKQorCQkJCQlpZiAoIShmbGFncyAmIFJWUl9PVEhFUl9URU1QX09LKSkKIAkJ CQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9UQUJM RV9ERUZJTklUSU9OKSwKLQkJCQkJCQkJIGVycm1zZygidGVtcG9yYXJ5IHRhYmxlcyBjYW5ub3Qg c3BlY2lmeSBhIHNjaGVtYSBuYW1lIikpKTsKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFU VVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJCQkgZXJybXNnKCJjb3VsZCBub3QgYWNjZXNzIHRl bXBvcmFyeSByZWxhdGlvbnMgb2Ygb3RoZXIgc2Vzc2lvbnMiKSkpOwogCQkJCX0KKwkJCX0KKwkJ CWVsc2UKKwkJCXsKKwkJCQluYW1lc3BhY2VJZCA9IG15VGVtcE5hbWVzcGFjZTsKIAotCQkJCXJl bElkID0gZ2V0X3JlbG5hbWVfcmVsaWQocmVsYXRpb24tPnJlbG5hbWUsIG15VGVtcE5hbWVzcGFj ZSk7CisJCQkJLyoKKwkJCQkgKiBJZiB0aGlzIHRhYmxlIHdhcyByZWNvZ25pemVkIGFzIHRlbXBv cmFyeSwgaXQgbWVhbnMgdGhhdCB3ZQorCQkJCSAqIGZvdW5kIGl0IGJlY2F1c2UgYmFja2VuZCdz IHRlbXBvcmFyeSBuYW1lc3BhY2Ugd2FzIHNwZWNpZmllZAorCQkJCSAqIGluIHNlYXJjaF9wYXRo LiBUaHVzLCBNeVRlbXBOYW1lc3BhY2UgbXVzdCBjb250YWluIHZhbGlkIG9pZC4KKwkJCQkgKi8K KwkJCQlBc3NlcnQoT2lkSXNWYWxpZChuYW1lc3BhY2VJZCkpOwogCQkJfQorCisJCQlpZiAobWlz c2luZ19vayAmJiAhT2lkSXNWYWxpZChuYW1lc3BhY2VJZCkpCisJCQkJcmVsSWQgPSBJbnZhbGlk T2lkOworCQkJZWxzZQorCQkJCXJlbElkID0gZ2V0X3JlbG5hbWVfcmVsaWQocmVsYXRpb24tPnJl bG5hbWUsIG5hbWVzcGFjZUlkKTsKIAkJfQogCQllbHNlIGlmIChyZWxhdGlvbi0+c2NoZW1hbmFt ZSkKIAkJewpAQCAtMzU1MywyMSArMzU2OSwxOSBAQCBnZXRfbmFtZXNwYWNlX29pZChjb25zdCBj aGFyICpuc3BuYW1lLCBib29sIG1pc3Npbmdfb2spCiBSYW5nZVZhciAqCiBtYWtlUmFuZ2VWYXJG cm9tTmFtZUxpc3QoY29uc3QgTGlzdCAqbmFtZXMpCiB7Ci0JUmFuZ2VWYXIgICAqcmVsID0gbWFr ZVJhbmdlVmFyKE5VTEwsIE5VTEwsIC0xKTsKKwlSYW5nZVZhciAgICpyZWw7CiAKIAlzd2l0Y2gg KGxpc3RfbGVuZ3RoKG5hbWVzKSkKIAl7CiAJCWNhc2UgMToKLQkJCXJlbC0+cmVsbmFtZSA9IHN0 clZhbChsaW5pdGlhbChuYW1lcykpOworCQkJcmVsID0gbWFrZVJhbmdlVmFyKE5VTEwsIHN0clZh bChsaW5pdGlhbChuYW1lcykpLCAtMSk7CiAJCQlicmVhazsKIAkJY2FzZSAyOgotCQkJcmVsLT5z Y2hlbWFuYW1lID0gc3RyVmFsKGxpbml0aWFsKG5hbWVzKSk7Ci0JCQlyZWwtPnJlbG5hbWUgPSBz dHJWYWwobHNlY29uZChuYW1lcykpOworCQkJcmVsID0gbWFrZVJhbmdlVmFyKHN0clZhbChsaW5p dGlhbChuYW1lcykpLCBzdHJWYWwobHNlY29uZChuYW1lcykpLCAtMSk7CiAJCQlicmVhazsKIAkJ Y2FzZSAzOgorCQkJcmVsID0gbWFrZVJhbmdlVmFyKHN0clZhbChsc2Vjb25kKG5hbWVzKSksIHN0 clZhbChsdGhpcmQobmFtZXMpKSwgLTEpOwogCQkJcmVsLT5jYXRhbG9nbmFtZSA9IHN0clZhbChs aW5pdGlhbChuYW1lcykpOwotCQkJcmVsLT5zY2hlbWFuYW1lID0gc3RyVmFsKGxzZWNvbmQobmFt ZXMpKTsKLQkJCXJlbC0+cmVsbmFtZSA9IHN0clZhbChsdGhpcmQobmFtZXMpKTsKIAkJCWJyZWFr OwogCQlkZWZhdWx0OgogCQkJZXJlcG9ydChFUlJPUiwKQEAgLTM3NzQsNiArMzc4OCw4IEBAIEdl dFRlbXBOYW1lc3BhY2VQcm9jTnVtYmVyKE9pZCBuYW1lc3BhY2VJZCkKIAkJcmV0dXJuIElOVkFM SURfUFJPQ19OVU1CRVI7IC8qIG5vIHN1Y2ggbmFtZXNwYWNlPyAqLwogCWlmIChzdHJuY21wKG5z cG5hbWUsICJwZ190ZW1wXyIsIDgpID09IDApCiAJCXJlc3VsdCA9IGF0b2kobnNwbmFtZSArIDgp OworCWVsc2UgaWYgKHN0cmNtcChuc3BuYW1lLCAicGdfdGVtcCIpID09IDApCisJCXJlc3VsdCA9 IE15UHJvY051bWJlcjsKIAllbHNlIGlmIChzdHJuY21wKG5zcG5hbWUsICJwZ190b2FzdF90ZW1w XyIsIDE0KSA9PSAwKQogCQlyZXN1bHQgPSBhdG9pKG5zcG5hbWUgKyAxNCk7CiAJZWxzZQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9j b21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBiM2VkNjk0NTdmYy4uYWIwYmJkMTFlYjAgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xNjIyLDcgKzE2MjIsOCBAQCBSZW1vdmVSZWxhdGlv bnMoRHJvcFN0bXQgKmRyb3ApCiAJCXN0YXRlLmhlYXBPaWQgPSBJbnZhbGlkT2lkOwogCQlzdGF0 ZS5wYXJ0UGFyZW50T2lkID0gSW52YWxpZE9pZDsKIAotCQlyZWxPaWQgPSBSYW5nZVZhckdldFJl bGlkRXh0ZW5kZWQocmVsLCBsb2NrbW9kZSwgUlZSX01JU1NJTkdfT0ssCisJCXJlbE9pZCA9IFJh bmdlVmFyR2V0UmVsaWRFeHRlbmRlZChyZWwsIGxvY2ttb2RlLAorCQkJCQkJCQkJCSAgUlZSX01J U1NJTkdfT0sgfCBSVlJfT1RIRVJfVEVNUF9PSywKIAkJCQkJCQkJCQkgIFJhbmdlVmFyQ2FsbGJh Y2tGb3JEcm9wUmVsYXRpb24sCiAJCQkJCQkJCQkJICAmc3RhdGUpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9ub2Rlcy9tYWtlZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL21ha2VmdW5j cy5jCmluZGV4IGUyZDllOWJlNDFhLi42MmVkZjI0YjVjMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvbm9kZXMvbWFrZWZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbWFrZWZ1bmNzLmMK QEAgLTQ3OCwxMCArNDc4LDE0IEBAIG1ha2VSYW5nZVZhcihjaGFyICpzY2hlbWFuYW1lLCBjaGFy ICpyZWxuYW1lLCBpbnQgbG9jYXRpb24pCiAJci0+c2NoZW1hbmFtZSA9IHNjaGVtYW5hbWU7CiAJ ci0+cmVsbmFtZSA9IHJlbG5hbWU7CiAJci0+aW5oID0gdHJ1ZTsKLQlyLT5yZWxwZXJzaXN0ZW5j ZSA9IFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVDsKIAlyLT5hbGlhcyA9IE5VTEw7CiAJci0+bG9j YXRpb24gPSBsb2NhdGlvbjsKIAorCWlmIChyLT5zY2hlbWFuYW1lICYmIHN0cm5jbXAoci0+c2No ZW1hbmFtZSwgInBnX3RlbXAiLCA3KSA9PSAwKQorCQlyLT5yZWxwZXJzaXN0ZW5jZSA9IFJFTFBF UlNJU1RFTkNFX1RFTVA7CisJZWxzZQorCQlyLT5yZWxwZXJzaXN0ZW5jZSA9IFJFTFBFUlNJU1RF TkNFX1BFUk1BTkVOVDsKKwogCXJldHVybiByOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCAzYzQyNjhi MjcxYS4uYWY3YTZiYzEzMjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkK KysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMTk0MjEsNyArMTk0MjEsMTEgQEAg bWFrZVJhbmdlVmFyRnJvbUFueU5hbWUoTGlzdCAqbmFtZXMsIGludCBwb3NpdGlvbiwgY29yZV95 eXNjYW5fdCB5eXNjYW5uZXIpCiAJCQlicmVhazsKIAl9CiAKLQlyLT5yZWxwZXJzaXN0ZW5jZSA9 IFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVDsKKwlpZiAoci0+c2NoZW1hbmFtZSAmJiBzdHJuY21w KHItPnNjaGVtYW5hbWUsICJwZ190ZW1wIiwgNykgPT0gMCkKKwkJci0+cmVscGVyc2lzdGVuY2Ug PSBSRUxQRVJTSVNURU5DRV9URU1QOworCWVsc2UKKwkJci0+cmVscGVyc2lzdGVuY2UgPSBSRUxQ RVJTSVNURU5DRV9QRVJNQU5FTlQ7CisKIAlyLT5sb2NhdGlvbiA9IHBvc2l0aW9uOwogCiAJcmV0 dXJuIHI7CkBAIC0xOTQ2MSw2ICsxOTQ2NSwxMSBAQCBtYWtlUmFuZ2VWYXJGcm9tUXVhbGlmaWVk TmFtZShjaGFyICpuYW1lLCBMaXN0ICpuYW1lbGlzdCwgaW50IGxvY2F0aW9uLAogCQkJYnJlYWs7 CiAJfQogCisJaWYgKHItPnNjaGVtYW5hbWUgJiYgc3RybmNtcChyLT5zY2hlbWFuYW1lLCAicGdf dGVtcCIsIDcpID09IDApCisJCXItPnJlbHBlcnNpc3RlbmNlID0gUkVMUEVSU0lTVEVOQ0VfVEVN UDsKKwllbHNlCisJCXItPnJlbHBlcnNpc3RlbmNlID0gUkVMUEVSU0lTVEVOQ0VfUEVSTUFORU5U OworCiAJcmV0dXJuIHI7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFt ZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IDhjN2NjYzY5 YTNjLi45YzQ1YTMwNTE2ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3Bh Y2UuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC03Miw2ICs3Miw4 IEBAIHR5cGVkZWYgZW51bSBSVlJPcHRpb24KIAlSVlJfTUlTU0lOR19PSyA9IDEgPDwgMCwJLyog ZG9uJ3QgZXJyb3IgaWYgcmVsYXRpb24gZG9lc24ndCBleGlzdCAqLwogCVJWUl9OT1dBSVQgPSAx IDw8IDEsCQkvKiBlcnJvciBpZiByZWxhdGlvbiBjYW5ub3QgYmUgbG9ja2VkICovCiAJUlZSX1NL SVBfTE9DS0VEID0gMSA8PCAyLAkvKiBza2lwIGlmIHJlbGF0aW9uIGNhbm5vdCBiZSBsb2NrZWQg Ki8KKwlSVlJfT1RIRVJfVEVNUF9PSyA9IDEgPDwgMwkvKiBkb24ndCBlcnJvciBpZiByZWxhdGlv biBpcyB0ZW1wIHJlbGF0aW9uIG9mCisJCQkJCQkJCSAgIG90aGVyIHNlc3Npb24gKG5lZWRlZCBm b3IgRFJPUCBjb21tYW5kKSAqLwogfQkJCVJWUk9wdGlvbjsKIAogdHlwZWRlZiB2b2lkICgqUmFu Z2VWYXJHZXRSZWxpZENhbGxiYWNrKSAoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLCBPaWQgcmVs SWQsCi0tIAoyLjQzLjAKCg== --000000000000f142f50632b66e64--