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 1wzEAj-003t92-1K for pgsql-hackers@arkaria.postgresql.org; Wed, 26 Aug 2026 14:00:09 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wzEAi-00DZuA-0p for pgsql-hackers@arkaria.postgresql.org; Wed, 26 Aug 2026 14:00:08 +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 1wzEAh-00DZu0-1y for pgsql-hackers@lists.postgresql.org; Wed, 26 Aug 2026 14:00:07 +0000 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wzEAf-00000002WK1-1psK for pgsql-hackers@postgresql.org; Wed, 26 Aug 2026 14:00:06 +0000 Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-6a051904222so961778a12.2 for ; Wed, 26 Aug 2026 07:00:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787752803; x=1788357603; darn=postgresql.org; h=cc:to:subject:from:content-language:user-agent:mime-version:date :message-id:content-type:from:to:cc:subject:date:message-id:reply-to :content-type; bh=bYDi6ZOecT3if4ESxkZ0VViEYivnO8UCtvZ3mFDxoBQ=; b=T9MHeTpaAX2PZ+0Za+bLD/jcKRTBczwFYlI98lr6Ww+sHaNCdLYe5uX3dUhFfLJPSN EtSfQ909L6L/sA+YBNqOQtld8cZYfEw0KgRfdGW1oitWZCg9NV5Y0EsDj9WgZygTitki 71yRVLeIHigLkjd3KYp5BxLg1sX1AkEdRj7/QoGdiMnoZ5VyvBmC+qJeuxnLrw8hUyck uLw9KifIZopiAbKUwDRoMu/Il9mivFKafy6/xhQxAfuoLs/FAG7tdzIuHmua3Vx0mAny AakCBNh4SWPYVP2Ww+GNHN0T2LS/y0/FNaDicj7sbzqjunexo9e8Rppt7QVK8a3OsdGR bTLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787752803; x=1788357603; h=cc:to:subject:from:content-language:user-agent:mime-version:date :message-id:content-type:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=bYDi6ZOecT3if4ESxkZ0VViEYivnO8UCtvZ3mFDxoBQ=; b=OU7qFZUOIPi8jzSigKRpgpXgW91PuWjBD/HXI6srB8Q28WAOF29Yef/WtZyp3Np4EB OIri8PRQSYLE4heu6RRGTvAY8mvkHu6IM/j29FHXhvaZfEkBNFzKp0KPSOv94/t5k6s/ 37Q95yk5E0R0ffrqqlfNh3OPNFXlszI7tPml5wrMHt4C3a0Z0rfCx+F2O7WKWXFDTEn/ cqoW2LdrPaBe2GmdAOw8Ky0RcgE1MbU7JqaTjgSFFq2ELbHYMeorzbSwNzAYZR/O8Nsq hDy5ju7qa5/0UWI7JKYK4TwK7e1PWOfaofbxojKH385x9wwSXVDjpvev7L52eXA3uF97 IBLg== X-Forwarded-Encrypted: i=1; AHgh+Ro9tbQxD8NxKet0kjznzArrlCpce9T/qirDTc19QvTX+pOLiGCNo9A0glu3kNRvAU3WN/EhU68sJesa+81W@postgresql.org X-Gm-Message-State: AFuF++muBLijxZOuD3xS8SkPvoKChQN4GiG41ZLSMldamStS6+uyhw64 t/MiTOWRHGoxouQw/n0ELkUE/YpjVu0TVoP0vh7dwf6KgC2tvVA5ZB+x X-Gm-Gg: AR+sD13MPwd2zgZ4B0AA9swEsdPciZzAoYQdvvuzB5RBYgwwam4BGWtJGkGQUP6hLQB GJJiwjgyyIgRG25pehvhTfQAVjfOcNVZ088B5K02sLMSGL0eukBSWGiZTGgGZhfe6WJFDBb4T1N L79p7nMnmzMins4VLgpAW8QrkhmC/r800Lx2+wD8S3hVcd83GWPfTKvwO7dliMem1Ahd7RyJOhe KCldQVDLIxi78mtY+PTbezGyvNIARk8vGMlAaY/rf9/wYwPukFpJNZe+sTdm0NyUor+lckogiCo 530AheNZVTTqmUVdCOZ9qPMWmRkPwpoSxNaO4QiykYhyLJ3/UJ+1FvlvUSeKzwAo7l/jU1tLVMc cF9iyEfxov7/M3QO1rDwhQqyMZ8d2anHLupucJJee7z0RW3HCk63h0AcmNtemop0jXNdZFmk9cH 67Dr0BmgMOjdQm1AOaFLcmwVUx3l1DPSIy1rBl6lz1skpH3T38DOd4QeL9S+9i7Dg= X-Received: by 2002:a17:907:3e9b:b0:c16:8799:fcb4 with SMTP id a640c23a62f3a-c250bc0fe60mr938771366b.19.1787752802930; Wed, 26 Aug 2026 07:00:02 -0700 (PDT) Received: from [192.168.0.50] ([89.149.107.253]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c250a88ac5csm528076266b.40.2026.08.26.07.00.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 26 Aug 2026 07:00:02 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------8qBp669JCdxPtBq3e090Zw0y" Message-ID: <94ac928b-8370-4db5-ada5-579a9ebc089d@gmail.com> Date: Wed, 26 Aug 2026 17:00:00 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US From: Alexander Lakhin Subject: Internal error codes triggered by regression tests and user queries, take 2 To: Michael Paquier , pgsql-hackers Cc: Justin Pryzby List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------8qBp669JCdxPtBq3e090Zw0y Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hello Michael, Please take a look at the follow-up to [0]. I've prepared a patch to assign error codes for errors reached by the following queries: 1) create table notnull_tbl_fail (a serial constraint foo not null constraint bar not null); -- from constraints.sql ERROR:  XX000: conflicting not-null constraint names "foo" and "bar" LOCATION:  transformColumnDefinition, parse_utilcmd.c:800     ERRCODE_INVALID_TABLE_DEFINITION 2) SELECT satisfies_hash_partition(0, 4, 0, NULL); -- from hash_part.sql ERROR:  XX000: could not open relation with OID 0 LOCATION:  relation_open, relation.c:62     ERRCODE_INVALID_PARAMETER_VALUE (also modified try_relation_open() for consistency) 3) SELECT COUNT(*) = 0 AS ok FROM pg_shmem_allocations_numa; -- from numa.sql ERROR:  XX000: libnuma initialization failed or NUMA is not supported on this platform LOCATION:  pg_get_shmem_allocations_numa, shmem.c:1122     ERRCODE_FEATURE_NOT_SUPPORTED 4) create table idxpart (a int) partition by range (a); create table idxpart0 (like idxpart); alter table idxpart0 add unique (a); alter table idxpart attach partition idxpart0 default; alter table only idxpart add primary key (a); -- from indexing.sql ERROR:  XX000: column "a" of table "idxpart0" is not marked NOT NULL LOCATION:  ATPrepAddPrimaryKey, tablecmds.c:9695     ERRCODE_INVALID_TABLE_DEFINITION 5) CREATE FUNCTION test_pglz_compress(bytea)   RETURNS bytea   AS '.../src/test/regress/regress.so' LANGUAGE C STRICT; CREATE FUNCTION test_pglz_decompress(bytea, int4, bool)   RETURNS bytea   AS '.../src/test/regress/regress.so' LANGUAGE C STRICT; SELECT test_pglz_decompress(test_pglz_compress(         decode(repeat('abcd', 100), 'escape')), 500, true); -- compression_pglz.sql: ERROR:  XX000: pglz_decompress failed LOCATION:  test_pglz_decompress, regress.c:1497     ERRCODE_DATA_CORRUPTED (like for "compressed pglz data is corrupt") With these changes plus v1-0001-Report-specific-SQLSTATEs-for-stats-restore-error.patch from [1] applied,  `make check` passes without XX000 errors for me. Tested with: --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -498,6 +498,7 @@ errfinish(const char *filename, int lineno, const char *funcname)      elevel = edata->elevel; +Assert(!(elevel == ERROR && edata->sqlerrcode == ERRCODE_INTERNAL_ERROR));      /*       * Do processing in ErrorContext, which we hope has enough reserved space       * to report an error. There are also other internal errors produced during `make check-world`, but I think they should be considered separately, as most of them are too generic or really internal, like "cache lookup failed for relation xxx" triggered by intra-grant-inplace. Besides the above, I've included in the patch assigning error codes to errors reported by Justin Pryzby at [2], except for the dubious amvalidate() and pg_read_file with parse_weight (both are already fixed): 6) select unknownin(''); ERROR:  XX000: failed to find conversion function from unknown to text LOCATION:  coerce_type, parse_coerce.c:544     ERRCODE_CANNOT_COERCE (used by other functions in parse_coerce.c) 7) SELECT pg_catalog.interval( '12 seconds'::interval ,3); ERROR:  XX000: unrecognized interval typmod: 3 LOCATION:  AdjustIntervalForTypmod, timestamp.c:1492     ERRCODE_INVALID_PARAMETER_VALUE (like below in the same function) 8) SELECT pg_describe_object(1,0,1); ERROR:  XX000: unsupported object class: 1 LOCATION:  getObjectDescription, objectaddress.c:4317     ERRCODE_WRONG_OBJECT_TYPE 9) SELECT acldefault('a',0); ERROR:  XX000: unrecognized object type abbreviation: a LOCATION:  acldefault_sql, acl.c:999     ERRCODE_WRONG_OBJECT_TYPE 10) select float8_regr_intercept(ARRAY[1]); ERROR:  XX000: float8_regr_intercept: expected 8-element float8 array LOCATION:  check_float8_array, float.c:2985     ERRCODE_INVALID_PARAMETER_VALUE A couple of cases I reported before: 11) do $$ #print_strict_params XXX $$; ERROR:  XX000: unrecognized print_strict_params option xxx CONTEXT:  compilation of PL/pgSQL function "inline_code_block" near line 1 LOCATION:  plpgsql_yyparse, pl_gram.y:396     ERRCODE_SYNTAX_ERROR 12) select pg_catalog.range_in('', 23, 0); ERROR:  XX000: type 23 is not a range type LOCATION:  get_range_io_data, rangetypes.c:339     ERRCODE_DATATYPE_MISMATCH (like for "data type %s is not an array type") [0] https://www.postgresql.org/message-id/aozYob22-UJ8CWzk%40paquier.xyz [1] https://www.postgresql.org/message-id/CAHGQGwHZLiLa9iM7NAiugp1B7CumN94%3DYBeho9t%3DqKJMnTGwMQ%40mail.gmail.com [2] https://www.postgresql.org/message-id/20230213135053.GZ1653%40telsasoft.com Best regards, Alexander --------------8qBp669JCdxPtBq3e090Zw0y Content-Type: text/x-patch; charset=UTF-8; name="define-missing-errcodes.patch" Content-Disposition: attachment; filename="define-missing-errcodes.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsYXRpb24uYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsYXRpb24uYwppbmRleCAzOGIzNTZiODIzOS4u YWQzMmJkMTNkNWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVs YXRpb24uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbGF0aW9uLmMKQEAg LTU5LDcgKzU5LDkgQEAgcmVsYXRpb25fb3BlbihPaWQgcmVsYXRpb25JZCwgTE9DS01PREUg bG9ja21vZGUpCiAJciA9IFJlbGF0aW9uSWRHZXRSZWxhdGlvbihyZWxhdGlvbklkKTsKIAog CWlmICghUmVsYXRpb25Jc1ZhbGlkKHIpKQotCQllbG9nKEVSUk9SLCAiY291bGQgbm90IG9w ZW4gcmVsYXRpb24gd2l0aCBPSUQgJXUiLCByZWxhdGlvbklkKTsKKwkJZXJlcG9ydChFUlJP UiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJ CQkgZXJybXNnKCJjb3VsZCBub3Qgb3BlbiByZWxhdGlvbiB3aXRoIE9JRCAldSIsIHJlbGF0 aW9uSWQpKSk7CiAKIAkvKgogCSAqIElmIHdlIGRpZG4ndCBnZXQgdGhlIGxvY2sgb3Vyc2Vs dmVzLCBhc3NlcnQgdGhhdCBjYWxsZXIgaG9sZHMgb25lLApAQCAtMTEzLDcgKzExNSw5IEBA IHRyeV9yZWxhdGlvbl9vcGVuKE9pZCByZWxhdGlvbklkLCBMT0NLTU9ERSBsb2NrbW9kZSkK IAlyID0gUmVsYXRpb25JZEdldFJlbGF0aW9uKHJlbGF0aW9uSWQpOwogCiAJaWYgKCFSZWxh dGlvbklzVmFsaWQocikpCi0JCWVsb2coRVJST1IsICJjb3VsZCBub3Qgb3BlbiByZWxhdGlv biB3aXRoIE9JRCAldSIsIHJlbGF0aW9uSWQpOworCQllcmVwb3J0KEVSUk9SLAorCQkJCShl cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCSBlcnJtc2co ImNvdWxkIG5vdCBvcGVuIHJlbGF0aW9uIHdpdGggT0lEICV1IiwgcmVsYXRpb25JZCkpKTsK IAogCS8qIElmIHdlIGRpZG4ndCBnZXQgdGhlIGxvY2sgb3Vyc2VsdmVzLCBhc3NlcnQgdGhh dCBjYWxsZXIgaG9sZHMgb25lICovCiAJQXNzZXJ0KGxvY2ttb2RlICE9IE5vTG9jayB8fApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgYi9zcmMv YmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRleCA3MDM3NTRhODEyMy4uNjU1 ZWViMWI1MDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVz cy5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCkBAIC00MzE0 LDcgKzQzMTQsMTAgQEAgZ2V0T2JqZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVz cyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQl9CiAKIAkJZGVmYXVsdDoKLQkJCWVs b2coRVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1Iiwgb2JqZWN0LT5jbGFz c0lkKTsKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdf T0JKRUNUX1RZUEUpLAorCQkJCQkgZXJybXNnKCJ1bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6 ICV1Iiwgb2JqZWN0LT5jbGFzc0lkKSkpOworCiAJfQogCiAJLyogYW4gZW1wdHkgYnVmZmVy IGlzIGVxdWl2YWxlbnQgdG8gbm8gb2JqZWN0IGZvdW5kICovCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Rh YmxlY21kcy5jCmluZGV4IDliOTExMzEwZjA1Li40MjI2MTE1ZWM4NCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvdGFibGVjbWRzLmMKQEAgLTk2OTMsNiArOTY5Myw3IEBAIEFUUHJlcEFkZFByaW1h cnlLZXkoTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcmVsLCBBbHRlclRhYmxlQ21kICpjbWQs CiAJCQkJdHVwID0gZmluZE5vdE51bGxDb25zdHJhaW50KGNoaWxkcmVsaWQsIHN0clZhbChj b2x1bW4pKTsKIAkJCQlpZiAoIXR1cCkKIAkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQll cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9UQUJMRV9ERUZJTklUSU9OKSwKIAkJCQkJCQllcnJt c2coImNvbHVtbiBcIiVzXCIgb2YgdGFibGUgXCIlc1wiIGlzIG5vdCBtYXJrZWQgTk9UIE5V TEwiLAogCQkJCQkJCQkgICBzdHJWYWwoY29sdW1uKSwgZ2V0X3JlbF9uYW1lKGNoaWxkcmVs aWQpKSk7CiAJCQkJLyogdmVyaWZ5IGl0J3MgZ29vZCBlbm91Z2ggKi8KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2VyY2UuYyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9jb2VyY2UuYwppbmRleCBkMzI0MGY0YjI2NS4uNDZlNjY5OTBhYzEgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2VyY2UuYworKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfY29lcmNlLmMKQEAgLTU0MSw4ICs1NDEsMTIgQEAgY29lcmNl X3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAogCQlyZXR1cm4gKE5vZGUg KikgcjsKIAl9CiAJLyogSWYgd2UgZ2V0IGhlcmUsIGNhbGxlciBibGV3IGl0ICovCi0JZWxv ZyhFUlJPUiwgImZhaWxlZCB0byBmaW5kIGNvbnZlcnNpb24gZnVuY3Rpb24gZnJvbSAlcyB0 byAlcyIsCi0JCSBmb3JtYXRfdHlwZV9iZShpbnB1dFR5cGVJZCksIGZvcm1hdF90eXBlX2Jl KHRhcmdldFR5cGVJZCkpOworCWVyZXBvcnQoRVJST1IsCisJCQkoZXJyY29kZShFUlJDT0RF X0NBTk5PVF9DT0VSQ0UpLAorCQkJIGVycm1zZygiZmFpbGVkIHRvIGZpbmQgY29udmVyc2lv biBmdW5jdGlvbiBmcm9tICVzIHRvICVzIiwKKwkJCQkJZm9ybWF0X3R5cGVfYmUoaW5wdXRU eXBlSWQpLCBmb3JtYXRfdHlwZV9iZSh0YXJnZXRUeXBlSWQpKSkpOworCisKIAlyZXR1cm4g TlVMTDsJCQkJLyoga2VlcCBjb21waWxlciBxdWlldCAqLwogfQogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3V0aWxjbWQuYwppbmRleCA2NDBlMWM0ZjVhNC4uYWJmZTQ0OWY4OTUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtNzk3LDggKzc5NywxMCBAQCB0cmFu c2Zvcm1Db2x1bW5EZWZpbml0aW9uKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIENvbHVtbkRl ZiAqY29sdW1uKQogCQkJCQlpZiAoY29uc3RyYWludC0+Y29ubmFtZSAmJgogCQkJCQkJbm90 bnVsbF9jb25zdHJhaW50LT5jb25uYW1lICYmCiAJCQkJCQlzdHJjbXAobm90bnVsbF9jb25z dHJhaW50LT5jb25uYW1lLCBjb25zdHJhaW50LT5jb25uYW1lKSAhPSAwKQotCQkJCQkJZWxv ZyhFUlJPUiwgImNvbmZsaWN0aW5nIG5vdC1udWxsIGNvbnN0cmFpbnQgbmFtZXMgXCIlc1wi IGFuZCBcIiVzXCIiLAotCQkJCQkJCSBub3RudWxsX2NvbnN0cmFpbnQtPmNvbm5hbWUsIGNv bnN0cmFpbnQtPmNvbm5hbWUpOworCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJZXJy Y29kZShFUlJDT0RFX0lOVkFMSURfVEFCTEVfREVGSU5JVElPTiksCisJCQkJCQkJCWVycm1z ZygiY29uZmxpY3Rpbmcgbm90LW51bGwgY29uc3RyYWludCBuYW1lcyBcIiVzXCIgYW5kIFwi JXNcIiIsCisJCQkJCQkJCQkgICBub3RudWxsX2NvbnN0cmFpbnQtPmNvbm5hbWUsIGNvbnN0 cmFpbnQtPmNvbm5hbWUpKTsKIAogCQkJCQlpZiAobm90bnVsbF9jb25zdHJhaW50LT5pc19u b19pbmhlcml0ICE9IGNvbnN0cmFpbnQtPmlzX25vX2luaGVyaXQpCiAJCQkJCQllcmVwb3J0 KEVSUk9SLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc2htZW0uYyBi L3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3NobWVtLmMKaW5kZXggMjI4ODcxZDI1MjUuLjQ0 OTFhYWJkOWE2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zaG1lbS5j CisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3NobWVtLmMKQEAgLTExMTksNyArMTEx OSw5IEBAIHBnX2dldF9zaG1lbV9hbGxvY2F0aW9uc19udW1hKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJU2l6ZQkgICAqbm9kZXM7CiAKIAlpZiAocGdfbnVtYV9pbml0KCkgPT0gLTEpCi0JCWVs b2coRVJST1IsICJsaWJudW1hIGluaXRpYWxpemF0aW9uIGZhaWxlZCBvciBOVU1BIGlzIG5v dCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybSIpOworCQllcmVwb3J0KEVSUk9SLAorCQkJ CShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNn KCJsaWJudW1hIGluaXRpYWxpemF0aW9uIGZhaWxlZCBvciBOVU1BIGlzIG5vdCBzdXBwb3J0 ZWQgb24gdGhpcyBwbGF0Zm9ybSIpKSk7CiAKIAlJbml0TWF0ZXJpYWxpemVkU1JGKGZjaW5m bywgMCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYwppbmRleCAyNWNkNWQwMjk2Yi4uMjM4NWMxZWJi ZTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvYWNsLmMKQEAgLTk5Niw3ICs5OTYsOSBAQCBhY2xkZWZhdWx0 X3NxbChQR19GVU5DVElPTl9BUkdTKQogCQkJb2JqdHlwZSA9IE9CSkVDVF9UWVBFOwogCQkJ YnJlYWs7CiAJCWRlZmF1bHQ6Ci0JCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVj dCB0eXBlIGFiYnJldmlhdGlvbjogJWMiLCBvYmp0eXBlYyk7CisJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkJIGVy cm1zZygidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlIGFiYnJldmlhdGlvbjogJWMiLCBvYmp0 eXBlYykpKTsKIAl9CiAKIAlQR19SRVRVUk5fQUNMX1AoYWNsZGVmYXVsdChvYmp0eXBlLCBv d25lcikpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRleCBmZDdhNjU4NzEzMi4uMmEzM2Jj MzdlODEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC0yOTgyLDcgKzI5ODIsMTAgQEAg Y2hlY2tfZmxvYXQ4X2FycmF5KEFycmF5VHlwZSAqdHJhbnNhcnJheSwgY29uc3QgY2hhciAq Y2FsbGVyLCBpbnQgbikKIAkJQVJSX0RJTVModHJhbnNhcnJheSlbMF0gIT0gbiB8fAogCQlB UlJfSEFTTlVMTCh0cmFuc2FycmF5KSB8fAogCQlBUlJfRUxFTVRZUEUodHJhbnNhcnJheSkg IT0gRkxPQVQ4T0lEKQotCQllbG9nKEVSUk9SLCAiJXM6IGV4cGVjdGVkICVkLWVsZW1lbnQg ZmxvYXQ4IGFycmF5IiwgY2FsbGVyLCBuKTsKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJy Y29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkgZXJybXNnKCIl czogZXhwZWN0ZWQgJWQtZWxlbWVudCBmbG9hdDggYXJyYXkiLCBjYWxsZXIsIG4pKSk7CisK IAlyZXR1cm4gKGZsb2F0OCAqKSBBUlJfREFUQV9QVFIodHJhbnNhcnJheSk7CiB9CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVzLmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvcmFuZ2V0eXBlcy5jCmluZGV4IDg0ZDcxNzYxYzFiLi5jZWRmYTQ1 OGM4OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JhbmdldHlwZXMuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmFuZ2V0eXBlcy5jCkBAIC0zMzYsNyArMzM2 LDkgQEAgZ2V0X3JhbmdlX2lvX2RhdGEoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIE9pZCBy bmd0eXBpZCwgSU9GdW5jU2VsZWN0b3IgZnVuYykKIAkJCQkJCQkJCQkJCSAgIHNpemVvZihS YW5nZUlPRGF0YSkpOwogCQljYWNoZS0+dHlwY2FjaGUgPSBsb29rdXBfdHlwZV9jYWNoZShy bmd0eXBpZCwgVFlQRUNBQ0hFX1JBTkdFX0lORk8pOwogCQlpZiAoY2FjaGUtPnR5cGNhY2hl LT5ybmdlbGVtdHlwZSA9PSBOVUxMKQotCQkJZWxvZyhFUlJPUiwgInR5cGUgJXUgaXMgbm90 IGEgcmFuZ2UgdHlwZSIsIHJuZ3R5cGlkKTsKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShl cnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkgZXJybXNnKCJ0eXBl ICV1IGlzIG5vdCBhIHJhbmdlIHR5cGUiLCBybmd0eXBpZCkpKTsKIAogCQkvKiBnZXRfdHlw ZV9pb19kYXRhIGRvZXMgbW9yZSB0aGFuIHdlIG5lZWQsIGJ1dCBpcyBjb252ZW5pZW50ICov CiAJCWdldF90eXBlX2lvX2RhdGEoY2FjaGUtPnR5cGNhY2hlLT5ybmdlbGVtdHlwZS0+dHlw ZV9pZCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYwppbmRleCA5YzE3YmEyZjkwNS4u MDZkMjM4MDI0ZTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3Rh bXAuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKQEAgLTE0ODks NyArMTQ4OSwxMCBAQCBBZGp1c3RJbnRlcnZhbEZvclR5cG1vZChJbnRlcnZhbCAqaW50ZXJ2 YWwsIGludDMyIHR5cG1vZCwKIAkJCS8qIGZyYWN0aW9uYWwtc2Vjb25kIHJvdW5kaW5nIHdp bGwgYmUgZGVhbHQgd2l0aCBiZWxvdyAqLwogCQl9CiAJCWVsc2UKLQkJCWVsb2coRVJST1Is ICJ1bnJlY29nbml6ZWQgaW50ZXJ2YWwgdHlwbW9kOiAlZCIsIHR5cG1vZCk7CisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZB TFVFKSwKKwkJCQkJIGVycm1zZygidW5yZWNvZ25pemVkIGludGVydmFsIHR5cG1vZDogJWQi LCB0eXBtb2QpKSk7CisKIAogCQkvKiBOZWVkIHRvIGFkanVzdCBzdWItc2Vjb25kIHByZWNp c2lvbj8gKi8KIAkJaWYgKHByZWNpc2lvbiAhPSBJTlRFUlZBTF9GVUxMX1BSRUNJU0lPTikK ZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkgYi9zcmMvcGwvcGxw Z3NxbC9zcmMvcGxfZ3JhbS55CmluZGV4IDVlMTRhMmQ3MzAyLi45ODQxMGNlNmZkNiAxMDA2 NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2dyYW0ueQorKysgYi9zcmMvcGwvcGxw Z3NxbC9zcmMvcGxfZ3JhbS55CkBAIC0zOTMsNyArMzkzLDEwIEBAIGNvbXBfb3B0aW9uCQk6 ICcjJyBLX09QVElPTiBLX0RVTVAKIAkJCQkJCWVsc2UgaWYgKHN0cmNtcCgkMywgIm9mZiIp ID09IDApCiAJCQkJCQkJcGxwZ3NxbF9jdXJyX2NvbXBpbGUtPnByaW50X3N0cmljdF9wYXJh bXMgPSBmYWxzZTsKIAkJCQkJCWVsc2UKLQkJCQkJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25p emVkIHByaW50X3N0cmljdF9wYXJhbXMgb3B0aW9uICVzIiwgJDMpOworCQkJCQkJCWVyZXBv cnQoRVJST1IsCisJCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJ CQkJCQkJCQkgZXJybXNnKCJ1bnJlY29nbml6ZWQgcHJpbnRfc3RyaWN0X3BhcmFtcyBvcHRp b24gJXMiLCAkMykpKTsKKwogCQkJCQl9CiAJCQkJfCAnIycgS19WQVJJQUJMRV9DT05GTElD VCBLX0VSUk9SCiAJCQkJCXsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcmVncmVz cy5jIGIvc3JjL3Rlc3QvcmVncmVzcy9yZWdyZXNzLmMKaW5kZXggYzcyZWUzMWNkY2UuLjJj ZDRlMTdiODY5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3JlZ3Jlc3MuYworKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3JlZ3Jlc3MuYwpAQCAtMTQ5NCw3ICsxNDk0LDkgQEAgdGVz dF9wZ2x6X2RlY29tcHJlc3MoUEdfRlVOQ1RJT05fQVJHUykKIAlkbGVuID0gcGdsel9kZWNv bXByZXNzKHNvdXJjZSwgc2xlbiwgVkFSREFUQShyZXN1bHQpLAogCQkJCQkJICAgcmF3c2l6 ZSwgY2hlY2tfY29tcGxldGUpOwogCWlmIChkbGVuIDwgMCkKLQkJZWxvZyhFUlJPUiwgInBn bHpfZGVjb21wcmVzcyBmYWlsZWQiKTsKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKKwkJCQkgZXJybXNnKCJwZ2x6X2RlY29tcHJl c3MgZmFpbGVkIikpKTsKIAogCVNFVF9WQVJTSVpFKHJlc3VsdCwgZGxlbiArIFZBUkhEUlNa KTsKIAlQR19SRVRVUk5fQllURUFfUChyZXN1bHQpOwo= --------------8qBp669JCdxPtBq3e090Zw0y--