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 1uggju-006KT8-Fg for pgsql-hackers@arkaria.postgresql.org; Tue, 29 Jul 2025 09:35:19 +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 1uggjt-00Gxn0-6l for pgsql-hackers@arkaria.postgresql.org; Tue, 29 Jul 2025 09:35:17 +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.94.2) (envelope-from <3danissimo@gmail.com>) id 1uggjs-00Gxms-S2 for pgsql-hackers@lists.postgresql.org; Tue, 29 Jul 2025 09:35:17 +0000 Received: from mail-yb1-xb2d.google.com ([2607:f8b0:4864:20::b2d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from <3danissimo@gmail.com>) id 1uggjp-001STH-1q for pgsql-hackers@postgresql.org; Tue, 29 Jul 2025 09:35:16 +0000 Received: by mail-yb1-xb2d.google.com with SMTP id 3f1490d57ef6-e8e11af0f54so1488939276.2 for ; Tue, 29 Jul 2025 02:35:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753781712; x=1754386512; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=i/xZc6sQCrjCvZXCRq29flVmgANjxerteum3ELbHD8M=; b=TXpRYQg+jcwA74+Z94bEhSkWID8+VW5Jx559fMiQGbtEWy4t1bfYHnTR6xp7mJzfAK P3fNVEv9nmel9fgkE0flU/1BNjDvjjU1eqbzYF5amRNpxUAEuAaol9trjiJcI6c4SBB+ tIKgVf1+t7uvlQgEBhCdHRkBUh8m8tnTlgSKMJ0Kwvb3uRTeoXwbjGWVVYtKPJD3881G V4YltEONMtHJllGsxXcxqvrF93MMrcp7SAy71Ku2ofDu0rZx7+6Cq9SEHSYEDYiSEsbn 3ZrG+uHJkx+VRFF/PgvIj5WRerzySCH6xg2ULUCDzVRPraR8TXs92mridRKQLF1P0JIh 5+Pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753781712; x=1754386512; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=i/xZc6sQCrjCvZXCRq29flVmgANjxerteum3ELbHD8M=; b=wzz5aV1TyyQCr/sKjnCO0s2w16JeVnz+9R5nnR66hITwTpgh0liFvlwRoS5nr6+ewM expltgPBmLmLPSTvFh+z+ZM4CwGR90SM8zOSFCM9BBgJu6FgxhCV571Gy5KgE5nbAFsf 3JgEox4Vp1Iebfa4TR90YCsmAqCuWcWBbLUdZiUaB7Zfe2Jh1ZCQIh9nnLyEL6ctAiqO uKF+qcm4sw/fGNxCT79mfEPUdGOWDFQuUT7vKvrcE1nDbn22m2dlUzR6YwgOFWe95x0Y n4o9PBJnhN5yGoLWKdk5X1hflfrjO8zLNZY9ld5XPNRAl/GtNuwwIY+8W67BqH1cSHa0 el2Q== X-Gm-Message-State: AOJu0YyR7h9ioiBdA9tVPsZngCMszSLA9Qpst882EJauaJTxqSn7vgpE EqqMKP2Kp4ZQQvoz1PSGTUlKf44F/yht6yA66X4WlOKj7w89V2Z9QgxUASMNy84vzAWQSzct8zy hfjl0k2xd/pVLu4pgCdyrFuR+t3a4wa4= X-Gm-Gg: ASbGnctIaAJQ1bMRX9ChqLjFwC/F3U9s34bovDThkBxEn66TjPislTjekxEp5ebwapY tYCkghgVQVaxga3/t72s9NNi5FN5/3lkgPZHcyX/ciiGSD9R9er0jEcYRInzcSeg62tGeIKzwdq ePzy259PvBEyScglO44bNPM/x9F8p58AVQR/AdV9nU2TASUyW8wSlLNPiTroBNuTlie3jItwWps 3D4UmOn2lifobFfmw== X-Google-Smtp-Source: AGHT+IExsK4mGlGB+5HT2xDfSfYskCEMHlV0AfkyJURJu6QMJGy4f88/+tpCN0kT6xN0GNoNide0CJYrcavrhX80I/Q= X-Received: by 2002:a05:690c:3393:b0:71a:2d5f:49ae with SMTP id 00721157ae682-71a2d5f5673mr59776847b3.6.1753781711907; Tue, 29 Jul 2025 02:35:11 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Daniil Davydov <3danissimo@gmail.com> Date: Tue, 29 Jul 2025 16:35:00 +0700 X-Gm-Features: Ac12FXw5XGjFsoAjUwe5uGLZa7Zk0ofcVHEMiLF222B74nfrWDilVTerDKmmwbo Message-ID: Subject: Re: Fix bug with accessing to temporary tables of other sessions To: Stepan Neretin Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000f3fc99063b0e1fa0" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000f3fc99063b0e1fa0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Mon, Jul 28, 2025 at 10:43=E2=80=AFAM Stepan Neretin = wrote: > > > Your patch for securing cross-session temp table access is a great improv= ement. The RVR_OTHER_TEMP_OK flag elegantly handles the DROP case while kee= ping the main restriction in place. > > For schema name validation, an exact strcmp for "pg_temp" and proper nume= ric parsing for "pg_temp_X" would be more precise than the current prefix c= heck. This would avoid any accidental matches to similarly named schemas. > Thanks for looking into it! > The error message could be adjusted to emphasize permissions, like "permi= ssion denied for cross-session temp table access". This would make the secu= rity intent clearer to users. > I don't think that such an error message will be more appropriate. We want to forbid this operation not because of "permission" reasons, but because of the danger of this operation. Yes, some people insist that dropping other sessions' temp tables might be useful in some cases, but it is a "last resort" solution. Even with this patch, DROP of other session temp tables can lead to an error. I wrote about it here [1]. > I noticed the Assert assumes myTempNamespace is always valid. While corre= ct, a brief comment explaining why this is safe would help future maintaine= rs. Well, v5 patch already contains comment for this assert : /* * If this table was recognized as temporary, it means that we * found it because the backend's temporary namespace was specified * in search_path. Thus, MyTempNamespace must contain valid oid. */ > The relpersistence logic could also be centralized in one place for consi= stency. I don't see a reason to separate this logic into a new function, because there will be no more cases when it will be useful to us. > I've added an isolation test to verify the behavior when trying to access= another backend's temp tables. It confirms the restrictions work as intend= ed while allowing permitted operations. Some time ago I also created a test for this situation, see patch in this [= 2] message. it worked in a similar way (but covered more test cases). It caused a mixed reaction from people, so I decided to abandon this idea. I guess it might be a discussion point in the future, but first I'd like to settle the core logic of the patch. I attach a v7 patch to this letter. No changes yet, just rebased on the new= est commit in master branch. [1] https://www.postgresql.org/message-id/flat/CAJDiXghoi-FM4d5XVZzUyiuhv8D= Dm9JdGOU8KC47emasqi1GUw%40mail.gmail.com [2] https://www.postgresql.org/message-id/CAJDiXgi9CWaZCVcHmvAT604RrAqDN5zp= OYxZq92adqkPq5QbnQ%40mail.gmail.com -- Best regards, Daniil Davydov --000000000000f3fc99063b0e1fa0 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0001-Fix-accessing-other-sessions-temp-tables.patch" Content-Disposition: attachment; filename="v7-0001-Fix-accessing-other-sessions-temp-tables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdoca0zg0 RnJvbSBmODQ5ZjdmNzVmM2Q3OWI1ODZkNDljNzRmMTcyYjExNTU1NjAzMzVmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE2OjMyOjM1ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2N10gRml4IGFjY2Vzc2luZyBvdGhlciBzZXNzaW9ucyB0ZW1wIHRhYmxlcwoKLS0tCiBzcmMv 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 b21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBjYjgxMTUyMGMyOS4uNzY0MDZiNWE5ZDkgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xNjIzLDcgKzE2MjMsOCBAQCBSZW1vdmVSZWxhdGlv bnMoRHJvcFN0bXQgKmRyb3ApCiAJCXN0YXRlLmhlYXBPaWQgPSBJbnZhbGlkT2lkOwogCQlzdGF0 ZS5wYXJ0UGFyZW50T2lkID0gSW52YWxpZE9pZDsKIAotCQlyZWxPaWQgPSBSYW5nZVZhckdldFJl bGlkRXh0ZW5kZWQocmVsLCBsb2NrbW9kZSwgUlZSX01JU1NJTkdfT0ssCisJCXJlbE9pZCA9IFJh bmdlVmFyR2V0UmVsaWRFeHRlbmRlZChyZWwsIGxvY2ttb2RlLAorCQkJCQkJCQkJCSAgUlZSX01J U1NJTkdfT0sgfCBSVlJfT1RIRVJfVEVNUF9PSywKIAkJCQkJCQkJCQkgIFJhbmdlVmFyQ2FsbGJh Y2tGb3JEcm9wUmVsYXRpb24sCiAJCQkJCQkJCQkJICAmc3RhdGUpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9ub2Rlcy9tYWtlZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL21ha2VmdW5j cy5jCmluZGV4IGUyZDllOWJlNDFhLi42MmVkZjI0YjVjMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvbm9kZXMvbWFrZWZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbWFrZWZ1bmNzLmMK QEAgLTQ3OCwxMCArNDc4LDE0IEBAIG1ha2VSYW5nZVZhcihjaGFyICpzY2hlbWFuYW1lLCBjaGFy ICpyZWxuYW1lLCBpbnQgbG9jYXRpb24pCiAJci0+c2NoZW1hbmFtZSA9IHNjaGVtYW5hbWU7CiAJ ci0+cmVsbmFtZSA9IHJlbG5hbWU7CiAJci0+aW5oID0gdHJ1ZTsKLQlyLT5yZWxwZXJzaXN0ZW5j ZSA9IFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVDsKIAlyLT5hbGlhcyA9IE5VTEw7CiAJci0+bG9j YXRpb24gPSBsb2NhdGlvbjsKIAorCWlmIChyLT5zY2hlbWFuYW1lICYmIHN0cm5jbXAoci0+c2No ZW1hbmFtZSwgInBnX3RlbXAiLCA3KSA9PSAwKQorCQlyLT5yZWxwZXJzaXN0ZW5jZSA9IFJFTFBF UlNJU1RFTkNFX1RFTVA7CisJZWxzZQorCQlyLT5yZWxwZXJzaXN0ZW5jZSA9IFJFTFBFUlNJU1RF TkNFX1BFUk1BTkVOVDsKKwogCXJldHVybiByOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBkYjQzMDM0 YjlkYi4uMWI5NTllNzUyYzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkK KysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMTk0MDUsNyArMTk0MDUsMTEgQEAg bWFrZVJhbmdlVmFyRnJvbUFueU5hbWUoTGlzdCAqbmFtZXMsIGludCBwb3NpdGlvbiwgY29yZV95 eXNjYW5fdCB5eXNjYW5uZXIpCiAJCQlicmVhazsKIAl9CiAKLQlyLT5yZWxwZXJzaXN0ZW5jZSA9 IFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVDsKKwlpZiAoci0+c2NoZW1hbmFtZSAmJiBzdHJuY21w KHItPnNjaGVtYW5hbWUsICJwZ190ZW1wIiwgNykgPT0gMCkKKwkJci0+cmVscGVyc2lzdGVuY2Ug PSBSRUxQRVJTSVNURU5DRV9URU1QOworCWVsc2UKKwkJci0+cmVscGVyc2lzdGVuY2UgPSBSRUxQ RVJTSVNURU5DRV9QRVJNQU5FTlQ7CisKIAlyLT5sb2NhdGlvbiA9IHBvc2l0aW9uOwogCiAJcmV0 dXJuIHI7CkBAIC0xOTQ0NSw2ICsxOTQ0OSwxMSBAQCBtYWtlUmFuZ2VWYXJGcm9tUXVhbGlmaWVk TmFtZShjaGFyICpuYW1lLCBMaXN0ICpuYW1lbGlzdCwgaW50IGxvY2F0aW9uLAogCQkJYnJlYWs7 CiAJfQogCisJaWYgKHItPnNjaGVtYW5hbWUgJiYgc3RybmNtcChyLT5zY2hlbWFuYW1lLCAicGdf dGVtcCIsIDcpID09IDApCisJCXItPnJlbHBlcnNpc3RlbmNlID0gUkVMUEVSU0lTVEVOQ0VfVEVN UDsKKwllbHNlCisJCXItPnJlbHBlcnNpc3RlbmNlID0gUkVMUEVSU0lTVEVOQ0VfUEVSTUFORU5U OworCiAJcmV0dXJuIHI7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFt ZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IDhjN2NjYzY5 YTNjLi45YzQ1YTMwNTE2ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3Bh Y2UuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC03Miw2ICs3Miw4 IEBAIHR5cGVkZWYgZW51bSBSVlJPcHRpb24KIAlSVlJfTUlTU0lOR19PSyA9IDEgPDwgMCwJLyog ZG9uJ3QgZXJyb3IgaWYgcmVsYXRpb24gZG9lc24ndCBleGlzdCAqLwogCVJWUl9OT1dBSVQgPSAx IDw8IDEsCQkvKiBlcnJvciBpZiByZWxhdGlvbiBjYW5ub3QgYmUgbG9ja2VkICovCiAJUlZSX1NL SVBfTE9DS0VEID0gMSA8PCAyLAkvKiBza2lwIGlmIHJlbGF0aW9uIGNhbm5vdCBiZSBsb2NrZWQg Ki8KKwlSVlJfT1RIRVJfVEVNUF9PSyA9IDEgPDwgMwkvKiBkb24ndCBlcnJvciBpZiByZWxhdGlv biBpcyB0ZW1wIHJlbGF0aW9uIG9mCisJCQkJCQkJCSAgIG90aGVyIHNlc3Npb24gKG5lZWRlZCBm b3IgRFJPUCBjb21tYW5kKSAqLwogfQkJCVJWUk9wdGlvbjsKIAogdHlwZWRlZiB2b2lkICgqUmFu Z2VWYXJHZXRSZWxpZENhbGxiYWNrKSAoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLCBPaWQgcmVs SWQsCi0tIAoyLjQzLjAKCg== --000000000000f3fc99063b0e1fa0--