From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Pip Cet Newsgroups: gmane.emacs.bugs Subject: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing Date: Sun, 7 Mar 2021 14:06:01 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000604f9905bcf2d3ca" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="20187"; mail-complaints-to="usenet@ciao.gmane.io" To: 46988@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Mar 07 15:07:12 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lIu3r-000584-N9 for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 07 Mar 2021 15:07:11 +0100 Original-Received: from localhost ([::1]:52710 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIu3q-0000II-L7 for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 07 Mar 2021 09:07:10 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:57290) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIu3i-0000Gn-Ey for bug-gnu-emacs@gnu.org; Sun, 07 Mar 2021 09:07:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:55699) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIu3i-0006uc-7Z for bug-gnu-emacs@gnu.org; Sun, 07 Mar 2021 09:07:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lIu3i-0006YM-2D for bug-gnu-emacs@gnu.org; Sun, 07 Mar 2021 09:07:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Pip Cet Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 07 Mar 2021 14:07:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 46988 X-GNU-PR-Package: emacs Original-Received: via spool by 46988-submit@debbugs.gnu.org id=B46988.161512600525166 (code B ref 46988); Sun, 07 Mar 2021 14:07:02 +0000 Original-Received: (at 46988) by debbugs.gnu.org; 7 Mar 2021 14:06:45 +0000 Original-Received: from localhost ([127.0.0.1]:39012 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lIu3Q-0006Xp-N4 for submit@debbugs.gnu.org; Sun, 07 Mar 2021 09:06:45 -0500 Original-Received: from mail-ot1-f52.google.com ([209.85.210.52]:41251) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lIu3P-0006Xc-HL for 46988@debbugs.gnu.org; Sun, 07 Mar 2021 09:06:44 -0500 Original-Received: by mail-ot1-f52.google.com with SMTP id f8so1606396otp.8 for <46988@debbugs.gnu.org>; Sun, 07 Mar 2021 06:06:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=kJt+84CNxO0aVq5GAm6rL5MfYVYdaJa4CVQnYuHBT1I=; b=rHuMTsLx/ejdoUYDAa49GAkZO+Bys8AlNCUI2UuTEjbafe1Qn8Tz5Zuq30e0z46rVg BjSw3GwnTcFaiYvgaEnI9Af5fYYOgJpALGOydwjU79IwZk1KY7N+Hisb4cVCH3viJThf H4vIp8MsVwynCWHoTeX1kUoTuDjrl1MBXcVt/vLV1ENqny12+P2etG89SUGvLgkfzfkH ZLfjXA/DsQXCvSLIQPXF69JoqkcVc9iWscT21DBuqCFb0OLdFdQfBm/nfC8vO7YzOHNX ODBeYp7Q7G/ko75EURhlgHFBYwcKPIn4VpH3N7W3g2MiwmMryhv8lrhecKMNYRsPnEDo Sj0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=kJt+84CNxO0aVq5GAm6rL5MfYVYdaJa4CVQnYuHBT1I=; b=apnk+Uvr3L3Ko9rtzBQB0UoDwk1q+o52Efp++zk0HpoVZlW0EgY0vZNkJnR1W6/r8F 9kK7pFOOeZsRvXG83ZsAHKMfBPkmTYWtVV66NaJf3LLKyYaJUCam4kii3mnds+58VPJn OByA/s3hmsPCZ6MMTP/Dy8yf24y8hENqYzSQNiOlYDyfNCYnJz4U0orLZL/AKJxy1AiG zSxtt/By3a98jFs84fbqdeKL1Nws9iXc+YIWXxkH20QAy8xWJ7Yri2blmP+aH47BVj13 fsBHgYFs/lQyevPFvUu55ZgaKVQR9lsKIXbPi6Q16Ufv2e2LnoRPjsXqC7PMXd9LO+k+ 0y9g== X-Gm-Message-State: AOAM533YpSX1fJsGObpIULRqJQgJiVTFtxJs9zwMRKSOZL1hdgyLTA3J N/9ucse6dVTretpdkoqGHu9PyTKVcHzF63Xcg2m3kfrJRKA= X-Google-Smtp-Source: ABdhPJzQUQYphGW1/BWA1IovI/JN85/9fZ/Q1AAIgs0bm2K1ivikl12RWhYuG1T0a6OvxnlNb5H0U/RqgkV7ThG9cBg= X-Received: by 2002:a05:6830:1e51:: with SMTP id e17mr15896974otj.292.1615125997955; Sun, 07 Mar 2021 06:06:37 -0800 (PST) In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:201741 Archived-At: --000000000000604f9905bcf2d3ca Content-Type: text/plain; charset="UTF-8" On Sun, Mar 7, 2021 at 1:48 PM Pip Cet wrote: > Proof-of-concept patch for a runtime check will be attached once this > has a bug number. Patch attached. It assumes the standard stack growth direction, and that __builtin_frame_address (0) is available and works. Uses GCC's __attribute__ ((cleanup (...))). My point here is that the technical implementation isn't the problem, the question is whether we're disciplined enough to run with checking enabled and react to bug reports about the fatal error being thrown. Pip --000000000000604f9905bcf2d3ca Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Runtime-check-that-some-functions-don-t-GC-bug-46988.patch" Content-Disposition: attachment; filename="0001-Runtime-check-that-some-functions-don-t-GC-bug-46988.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_klz87h3c0 RnJvbSBmNWFkNTc2ZWUwYWE2YzJiMzk3NWIwY2ExMzFhZWE0NDQ0YzdlMzM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaXAgQ2V0IDxwaXBjZXRAZ21haWwuY29tPgpEYXRlOiBTdW4s IDcgTWFyIDIwMjEgMTM6NTk6MzIgKzAwMDAKU3ViamVjdDogW1BBVENIXSBSdW50aW1lIGNoZWNr IHRoYXQgc29tZSBmdW5jdGlvbnMgZG9uJ3QgR0MgKGJ1ZyM0Njk4OCkKCiogc3JjL2FsbG9jLmMg KG1hcmtfb2JqZWN0KTogTWFyayBhcyBET05UX0FMTE9XX0dDICgpLgooZ2xvYmFsX2RvbnRfYWxs b3dfZ2MpOiBOZXcgdmFyaWFibGUuCiogc3JjL2V2YWwuYyAocHVzaF9oYW5kbGVyKTogUmVxdWly ZSBhbiBzcCBhcmd1bWVudC4gQWxsIGNhbGxlcnMKY2hhbmdlZC4KKHB1c2hfaGFuZGxlcl9ub3Np Z25hbCk6IFJlcXVpcmUgYW4gc3AgYXJndW1lbnQuIEFsbCBjYWxsZXJzIGNoYW5nZWQuClNhdmUg c3AgYXJndW1lbnQgaW4gaGFuZGxlciBzdHJ1Y3R1cmUuCih1bndpbmRfdG9fY2F0Y2gpOiBIYW5k bGUgZG9udF9hbGxvd19nYyBzdGFjay4KKEZ0aHJvdyk6IE1hcmsgYXMgRE9OVF9BTExPV19HQyAo KS4KKiBzcmMvbGlzcC5oIChzdHJ1Y3QgaGFuZGxlcik6IEFkZCBzcCBmaWVsZCwgZm9yIGN1c3Rv bSBzdGFjawp1bndpbmRpbmcuCihzdHJ1Y3QgZG9udF9hbGxvd19nYyk6IE5ldyBzdHJ1Y3QuCihk b250X2FsbG93X2djX2luaXQpOiBOZXcgZnVuY3Rpb24uCihkb250X2FsbG93X2djX2Rlc3Ryb3kp OiBOZXcgZnVuY3Rpb24uCihET05UX0FMTE9XX0dDKTogTmV3IG1hY3JvLgoobWF5YmVfZ2MpOiBD aGVjayB3aGV0aGVyIEdDIGlzIGFsbG93ZWQsIHRocm93IGEgZmF0YWwgZXJyb3IgaWYgbm90Lgot LS0KIHNyYy9hbGxvYy5jICAgICAgICB8ICAzICsrKwogc3JjL2J5dGVjb2RlLmMgICAgIHwgIDMg KystCiBzcmMvZW1hY3MtbW9kdWxlLmMgfCAgMiArLQogc3JjL2V2YWwuYyAgICAgICAgIHwgMzUg KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIHNyYy9saXNwLmggICAgICAgICB8 IDMzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogc3JjL3RocmVhZC5jICAgICAg IHwgIDIgKy0KIDYgZmlsZXMgY2hhbmdlZCwgNjIgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2FsbG9jLmMgYi9zcmMvYWxsb2MuYwppbmRleCBlNzJmYzRj NDMzMmRlLi41ZmU2MmVmOTUzMTE3IDEwMDY0NAotLS0gYS9zcmMvYWxsb2MuYworKysgYi9zcmMv YWxsb2MuYwpAQCAtNjU2NSw2ICs2NTY1LDcgQEAgbWFya19vYmplY3RzIChMaXNwX09iamVjdCAq b2JqLCBwdHJkaWZmX3QgbikKIHZvaWQKIG1hcmtfb2JqZWN0IChMaXNwX09iamVjdCBhcmcpCiB7 CisgIERPTlRfQUxMT1dfR0MgKCk7CiAgIHJlZ2lzdGVyIExpc3BfT2JqZWN0IG9iajsKICAgdm9p ZCAqcG87CiAjaWYgR0NfQ0hFQ0tfTUFSS0VEX09CSkVDVFMKQEAgLTc2NjgsMyArNzY2OSw1IEBA IHN5bXNfb2ZfYWxsb2MgKHZvaWQpCiAgIGVudW0gZGVmaW5lZF9IQVZFX1hfV0lORE9XUyBkZWZp bmVkX0hBVkVfWF9XSU5ET1dTOwogfSBjb25zdCBFWFRFUk5BTExZX1ZJU0lCTEUgZ2RiX21ha2Vf ZW51bXNfdmlzaWJsZSA9IHswfTsKICNlbmRpZgkvKiBfX0dOVUNfXyAqLworCitzdHJ1Y3QgZG9u dF9hbGxvd19nYyAqZ2xvYmFsX2RvbnRfYWxsb3dfZ2M7CmRpZmYgLS1naXQgYS9zcmMvYnl0ZWNv ZGUuYyBiL3NyYy9ieXRlY29kZS5jCmluZGV4IDRmZDQxYWNhYjg1NmEuLjVhODVmZTgxYWU2ZGEg MTAwNjQ0Ci0tLSBhL3NyYy9ieXRlY29kZS5jCisrKyBiL3NyYy9ieXRlY29kZS5jCkBAIC03NzYs NyArNzc2LDggQEAgI2RlZmluZSBERUZJTkUobmFtZSwgdmFsdWUpIExBQkVMIChuYW1lKSAsCiAJ ICB0eXBlID0gQ09ORElUSU9OX0NBU0U7CiAJcHVzaGhhbmRsZXI6CiAJICB7Ci0JICAgIHN0cnVj dCBoYW5kbGVyICpjID0gcHVzaF9oYW5kbGVyIChQT1AsIHR5cGUpOworCSAgICBzdHJ1Y3QgaGFu ZGxlciAqYyA9IHB1c2hfaGFuZGxlciAoUE9QLCB0eXBlLAorCQkJCQkgICAgICBfX2J1aWx0aW5f ZnJhbWVfYWRkcmVzcyAoMCkpOwogCSAgICBjLT5ieXRlY29kZV9kZXN0ID0gRkVUQ0gyOwogCSAg ICBjLT5ieXRlY29kZV90b3AgPSB0b3A7CiAKZGlmZiAtLWdpdCBhL3NyYy9lbWFjcy1tb2R1bGUu YyBiL3NyYy9lbWFjcy1tb2R1bGUuYwppbmRleCBmOGZiNTRjMDcyODIzLi42M2ZlNDk1YjkxYTE3 IDEwMDY0NAotLS0gYS9zcmMvZW1hY3MtbW9kdWxlLmMKKysrIGIvc3JjL2VtYWNzLW1vZHVsZS5j CkBAIC0yNzIsNyArMjcyLDcgQEAgI2RlZmluZSBNT0RVTEVfSEFORExFX05PTkxPQ0FMX0VYSVQo cmV0dmFsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICBpZiAobW9kdWxlX25vbl9s b2NhbF9leGl0X2NoZWNrIChlbnYpICE9IGVtYWNzX2Z1bmNhbGxfZXhpdF9yZXR1cm4pCVwKICAg ICByZXR1cm4gcmV0dmFsOwkJCQkJCQlcCiAgIHN0cnVjdCBoYW5kbGVyICppbnRlcm5hbF9oYW5k bGVyID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgcHVzaF9oYW5k bGVyX25vc2lnbmFsIChRdCwgQ0FUQ0hFUl9BTEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgcHVzaF9oYW5kbGVyX25vc2lnbmFsIChRdCwgQ0FUQ0hFUl9BTEwsIF9fYnVpbHRp bl9mcmFtZV9hZGRyZXNzICgwKSk7IFwKICAgaWYgKCFpbnRlcm5hbF9oYW5kbGVyKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB7CQkJCQkJCQkJ XAogICAgICAgbW9kdWxlX291dF9vZl9tZW1vcnkgKGVudik7CQkJCQlcCmRpZmYgLS1naXQgYS9z cmMvZXZhbC5jIGIvc3JjL2V2YWwuYwppbmRleCBkZGFhOGVkZDgxNzA2Li5iMzk2NGI1MWExZWQx IDEwMDY0NAotLS0gYS9zcmMvZXZhbC5jCisrKyBiL3NyYy9ldmFsLmMKQEAgLTI0Myw3ICsyNDMs NyBAQCBpbml0X2V2YWwgKHZvaWQpCiAgICAgICAgd2hpY2ggd291bGQgb3RoZXJ3aXNlIGxlYWsg ZXZlcnkgdGltZSB3ZSB1bndpbmQgYmFjayB0byB0b3AtbGV2ZWwuICAgKi8KICAgICBoYW5kbGVy bGlzdF9zZW50aW5lbCA9IHh6YWxsb2MgKHNpemVvZiAoc3RydWN0IGhhbmRsZXIpKTsKICAgICBo YW5kbGVybGlzdCA9IGhhbmRsZXJsaXN0X3NlbnRpbmVsLT5uZXh0ZnJlZSA9IGhhbmRsZXJsaXN0 X3NlbnRpbmVsOwotICAgIHN0cnVjdCBoYW5kbGVyICpjID0gcHVzaF9oYW5kbGVyIChRdW5ib3Vu ZCwgQ0FUQ0hFUik7CisgICAgc3RydWN0IGhhbmRsZXIgKmMgPSBwdXNoX2hhbmRsZXIgKFF1bmJv dW5kLCBDQVRDSEVSLCBfX2J1aWx0aW5fZnJhbWVfYWRkcmVzcyAoMCkpOwogICAgIGVhc3NlcnQg KGMgPT0gaGFuZGxlcmxpc3Rfc2VudGluZWwpOwogICAgIGhhbmRsZXJsaXN0X3NlbnRpbmVsLT5u ZXh0ZnJlZSA9IE5VTEw7CiAgICAgaGFuZGxlcmxpc3Rfc2VudGluZWwtPm5leHQgPSBOVUxMOwpA QCAtMTE3OCw3ICsxMTc4LDcgQEAgaW50ZXJuYWxfY2F0Y2ggKExpc3BfT2JqZWN0IHRhZywKIAkJ TGlzcF9PYmplY3QgKCpmdW5jKSAoTGlzcF9PYmplY3QpLCBMaXNwX09iamVjdCBhcmcpCiB7CiAg IC8qIFRoaXMgc3RydWN0dXJlIGlzIG1hZGUgcGFydCBvZiB0aGUgY2hhaW4gYGNhdGNobGlzdCcu ICAqLwotICBzdHJ1Y3QgaGFuZGxlciAqYyA9IHB1c2hfaGFuZGxlciAodGFnLCBDQVRDSEVSKTsK KyAgc3RydWN0IGhhbmRsZXIgKmMgPSBwdXNoX2hhbmRsZXIgKHRhZywgQ0FUQ0hFUiwgX19idWls dGluX2ZyYW1lX2FkZHJlc3MgKDApKTsKIAogICBpZiAoRVEgKHRhZywgUWV4aXQpKQogICAgIG1p bmlidWZmZXJfcXVpdF9sZXZlbCA9IDA7CkBAIC0xMjU4LDYgKzEyNTgsOSBAQCB1bndpbmRfdG9f Y2F0Y2ggKHN0cnVjdCBoYW5kbGVyICpjYXRjaCwgZW51bSBub25sb2NhbF9leGl0IHR5cGUsCiAK ICAgbGlzcF9ldmFsX2RlcHRoID0gY2F0Y2gtPmZfbGlzcF9ldmFsX2RlcHRoOwogCisgIHZvaWQg KnNwID0gY2F0Y2gtPnNwOworICB3aGlsZSAoZ2xvYmFsX2RvbnRfYWxsb3dfZ2MgJiYgKHZvaWQg KilnbG9iYWxfZG9udF9hbGxvd19nYyA8IHNwKQorICAgIGdsb2JhbF9kb250X2FsbG93X2djID0g Z2xvYmFsX2RvbnRfYWxsb3dfZ2MtPnByZXY7CiAgIHN5c19sb25nam1wIChjYXRjaC0+am1wLCAx KTsKIH0KIApAQCAtMTI2Nyw2ICsxMjcwLDcgQEAgREVGVU4gKCJ0aHJvdyIsIEZ0aHJvdywgU3Ro cm93LCAyLCAyLCAwLAogICAgICAgIGF0dHJpYnV0ZXM6IG5vcmV0dXJuKQogICAocmVnaXN0ZXIg TGlzcF9PYmplY3QgdGFnLCBMaXNwX09iamVjdCB2YWx1ZSkKIHsKKyAgRE9OVF9BTExPV19HQyAo KTsKICAgc3RydWN0IGhhbmRsZXIgKmM7CiAKICAgaWYgKCFOSUxQICh0YWcpKQpAQCAtMTM3Niw3 ICsxMzgwLDggQEAgaW50ZXJuYWxfbGlzcF9jb25kaXRpb25fY2FzZSAoTGlzcF9PYmplY3QgdmFy LCBMaXNwX09iamVjdCBib2R5Zm9ybSwKICAgICAgIExpc3BfT2JqZWN0IGNvbmRpdGlvbiA9IENP TlNQIChjbGF1c2UpID8gWENBUiAoY2xhdXNlKSA6IFFuaWw7CiAgICAgICBpZiAoIUNPTlNQIChj b25kaXRpb24pKQogCWNvbmRpdGlvbiA9IGxpc3QxIChjb25kaXRpb24pOwotICAgICAgc3RydWN0 IGhhbmRsZXIgKmMgPSBwdXNoX2hhbmRsZXIgKGNvbmRpdGlvbiwgQ09ORElUSU9OX0NBU0UpOwor ICAgICAgc3RydWN0IGhhbmRsZXIgKmMgPSBwdXNoX2hhbmRsZXIgKGNvbmRpdGlvbiwgQ09ORElU SU9OX0NBU0UsCisJCQkJCV9fYnVpbHRpbl9mcmFtZV9hZGRyZXNzICgwKSk7CiAgICAgICBpZiAo c3lzX3NldGptcCAoYy0+am1wKSkKIAl7CiAJICBMaXNwX09iamVjdCB2YWwgPSBoYW5kbGVybGlz dC0+dmFsOwpAQCAtMTQyNiw3ICsxNDMxLDggQEAgaW50ZXJuYWxfbGlzcF9jb25kaXRpb25fY2Fz ZSAoTGlzcF9PYmplY3QgdmFyLCBMaXNwX09iamVjdCBib2R5Zm9ybSwKIGludGVybmFsX2NvbmRp dGlvbl9jYXNlIChMaXNwX09iamVjdCAoKmJmdW4pICh2b2lkKSwgTGlzcF9PYmplY3QgaGFuZGxl cnMsCiAJCQkgTGlzcF9PYmplY3QgKCpoZnVuKSAoTGlzcF9PYmplY3QpKQogewotICBzdHJ1Y3Qg aGFuZGxlciAqYyA9IHB1c2hfaGFuZGxlciAoaGFuZGxlcnMsIENPTkRJVElPTl9DQVNFKTsKKyAg c3RydWN0IGhhbmRsZXIgKmMgPSBwdXNoX2hhbmRsZXIgKGhhbmRsZXJzLCBDT05ESVRJT05fQ0FT RSwKKwkJCQkgICAgX19idWlsdGluX2ZyYW1lX2FkZHJlc3MgKDApKTsKICAgaWYgKHN5c19zZXRq bXAgKGMtPmptcCkpCiAgICAgewogICAgICAgTGlzcF9PYmplY3QgdmFsID0gaGFuZGxlcmxpc3Qt PnZhbDsKQEAgLTE0NTAsNyArMTQ1Niw4IEBAIGludGVybmFsX2NvbmRpdGlvbl9jYXNlXzEgKExp c3BfT2JqZWN0ICgqYmZ1bikgKExpc3BfT2JqZWN0KSwgTGlzcF9PYmplY3QgYXJnLAogCQkJICAg TGlzcF9PYmplY3QgaGFuZGxlcnMsCiAJCQkgICBMaXNwX09iamVjdCAoKmhmdW4pIChMaXNwX09i amVjdCkpCiB7Ci0gIHN0cnVjdCBoYW5kbGVyICpjID0gcHVzaF9oYW5kbGVyIChoYW5kbGVycywg Q09ORElUSU9OX0NBU0UpOworICBzdHJ1Y3QgaGFuZGxlciAqYyA9IHB1c2hfaGFuZGxlciAoaGFu ZGxlcnMsIENPTkRJVElPTl9DQVNFLAorCQkJCSAgICBfX2J1aWx0aW5fZnJhbWVfYWRkcmVzcyAo MCkpOwogICBpZiAoc3lzX3NldGptcCAoYy0+am1wKSkKICAgICB7CiAgICAgICBMaXNwX09iamVj dCB2YWwgPSBoYW5kbGVybGlzdC0+dmFsOwpAQCAtMTQ3Nyw3ICsxNDg0LDggQEAgaW50ZXJuYWxf Y29uZGl0aW9uX2Nhc2VfMiAoTGlzcF9PYmplY3QgKCpiZnVuKSAoTGlzcF9PYmplY3QsIExpc3Bf T2JqZWN0KSwKIAkJCSAgIExpc3BfT2JqZWN0IGhhbmRsZXJzLAogCQkJICAgTGlzcF9PYmplY3Qg KCpoZnVuKSAoTGlzcF9PYmplY3QpKQogewotICBzdHJ1Y3QgaGFuZGxlciAqYyA9IHB1c2hfaGFu ZGxlciAoaGFuZGxlcnMsIENPTkRJVElPTl9DQVNFKTsKKyAgc3RydWN0IGhhbmRsZXIgKmMgPSBw dXNoX2hhbmRsZXIgKGhhbmRsZXJzLCBDT05ESVRJT05fQ0FTRSwKKwkJCQkgICAgX19idWlsdGlu X2ZyYW1lX2FkZHJlc3MgKDApKTsKICAgaWYgKHN5c19zZXRqbXAgKGMtPmptcCkpCiAgICAgewog ICAgICAgTGlzcF9PYmplY3QgdmFsID0gaGFuZGxlcmxpc3QtPnZhbDsKQEAgLTE1MDYsNyArMTUx NCw4IEBAIGludGVybmFsX2NvbmRpdGlvbl9jYXNlX24gKExpc3BfT2JqZWN0ICgqYmZ1bikgKHB0 cmRpZmZfdCwgTGlzcF9PYmplY3QgKiksCiAJCQkJCQlwdHJkaWZmX3QgbmFyZ3MsCiAJCQkJCQlM aXNwX09iamVjdCAqYXJncykpCiB7Ci0gIHN0cnVjdCBoYW5kbGVyICpjID0gcHVzaF9oYW5kbGVy IChoYW5kbGVycywgQ09ORElUSU9OX0NBU0UpOworICBzdHJ1Y3QgaGFuZGxlciAqYyA9IHB1c2hf aGFuZGxlciAoaGFuZGxlcnMsIENPTkRJVElPTl9DQVNFLAorCQkJCSAgICBfX2J1aWx0aW5fZnJh bWVfYWRkcmVzcyAoMCkpOwogICBpZiAoc3lzX3NldGptcCAoYy0+am1wKSkKICAgICB7CiAgICAg ICBMaXNwX09iamVjdCB2YWwgPSBoYW5kbGVybGlzdC0+dmFsOwpAQCAtMTUzMyw3ICsxNTQyLDgg QEAgaW50ZXJuYWxfY29uZGl0aW9uX2Nhc2VfbiAoTGlzcF9PYmplY3QgKCpiZnVuKSAocHRyZGlm Zl90LCBMaXNwX09iamVjdCAqKSwKIGludGVybmFsX2NhdGNoX2FsbCAoTGlzcF9PYmplY3QgKCpm dW5jdGlvbikgKHZvaWQgKiksIHZvaWQgKmFyZ3VtZW50LAogICAgICAgICAgICAgICAgICAgICBM aXNwX09iamVjdCAoKmhhbmRsZXIpIChlbnVtIG5vbmxvY2FsX2V4aXQsIExpc3BfT2JqZWN0KSkK IHsKLSAgc3RydWN0IGhhbmRsZXIgKmMgPSBwdXNoX2hhbmRsZXJfbm9zaWduYWwgKFF0LCBDQVRD SEVSX0FMTCk7CisgIHN0cnVjdCBoYW5kbGVyICpjID0gcHVzaF9oYW5kbGVyX25vc2lnbmFsIChR dCwgQ0FUQ0hFUl9BTEwsCisJCQkJCSAgICAgX19idWlsdGluX2ZyYW1lX2FkZHJlc3MgKDApKTsK ICAgaWYgKGMgPT0gTlVMTCkKICAgICByZXR1cm4gUWNhdGNoX2FsbF9tZW1vcnlfZnVsbDsKIApA QCAtMTU1NSwxNiArMTU2NSwxOCBAQCBpbnRlcm5hbF9jYXRjaF9hbGwgKExpc3BfT2JqZWN0ICgq ZnVuY3Rpb24pICh2b2lkICopLCB2b2lkICphcmd1bWVudCwKIH0KIAogc3RydWN0IGhhbmRsZXIg KgotcHVzaF9oYW5kbGVyIChMaXNwX09iamVjdCB0YWdfY2hfdmFsLCBlbnVtIGhhbmRsZXJ0eXBl IGhhbmRsZXJ0eXBlKQorcHVzaF9oYW5kbGVyIChMaXNwX09iamVjdCB0YWdfY2hfdmFsLCBlbnVt IGhhbmRsZXJ0eXBlIGhhbmRsZXJ0eXBlLAorCSAgICAgIHZvaWQgKnNwKQogewotICBzdHJ1Y3Qg aGFuZGxlciAqYyA9IHB1c2hfaGFuZGxlcl9ub3NpZ25hbCAodGFnX2NoX3ZhbCwgaGFuZGxlcnR5 cGUpOworICBzdHJ1Y3QgaGFuZGxlciAqYyA9IHB1c2hfaGFuZGxlcl9ub3NpZ25hbCAodGFnX2No X3ZhbCwgaGFuZGxlcnR5cGUsIHNwKTsKICAgaWYgKCFjKQogICAgIG1lbW9yeV9mdWxsIChzaXpl b2YgKmMpOwogICByZXR1cm4gYzsKIH0KIAogc3RydWN0IGhhbmRsZXIgKgotcHVzaF9oYW5kbGVy X25vc2lnbmFsIChMaXNwX09iamVjdCB0YWdfY2hfdmFsLCBlbnVtIGhhbmRsZXJ0eXBlIGhhbmRs ZXJ0eXBlKQorcHVzaF9oYW5kbGVyX25vc2lnbmFsIChMaXNwX09iamVjdCB0YWdfY2hfdmFsLCBl bnVtIGhhbmRsZXJ0eXBlIGhhbmRsZXJ0eXBlLAorCQkgICAgICAgdm9pZCAqc3ApCiB7CiAgIHN0 cnVjdCBoYW5kbGVyICpDQUNIRUFCTEUgYyA9IGhhbmRsZXJsaXN0LT5uZXh0ZnJlZTsKICAgaWYg KCFjKQpAQCAtMTU4NSw2ICsxNTk3LDcgQEAgcHVzaF9oYW5kbGVyX25vc2lnbmFsIChMaXNwX09i amVjdCB0YWdfY2hfdmFsLCBlbnVtIGhhbmRsZXJ0eXBlIGhhbmRsZXJ0eXBlKQogICBjLT5wZGxj b3VudCA9IFNQRUNQRExfSU5ERVggKCk7CiAgIGMtPnBvbGxfc3VwcHJlc3NfY291bnQgPSBwb2xs X3N1cHByZXNzX2NvdW50OwogICBjLT5pbnRlcnJ1cHRfaW5wdXRfYmxvY2tlZCA9IGludGVycnVw dF9pbnB1dF9ibG9ja2VkOworICBjLT5zcCA9IHNwOwogICBoYW5kbGVybGlzdCA9IGM7CiAgIHJl dHVybiBjOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2xpc3AuaCBiL3NyYy9saXNwLmgKaW5kZXggYjk1 ZjM4OWI4OTAyNC4uOWQ5NDM3NmI1Yjg5NyAxMDA2NDQKLS0tIGEvc3JjL2xpc3AuaAorKysgYi9z cmMvbGlzcC5oCkBAIC0zMjU5LDYgKzMyNTksNyBAQCBTUEVDUERMX0lOREVYICh2b2lkKQogICBw dHJkaWZmX3QgcGRsY291bnQ7CiAgIGludCBwb2xsX3N1cHByZXNzX2NvdW50OwogICBpbnQgaW50 ZXJydXB0X2lucHV0X2Jsb2NrZWQ7CisgIHZvaWQgKnNwOwogfTsKIAogZXh0ZXJuIExpc3BfT2Jq ZWN0IG1lbW9yeV9zaWduYWxfZGF0YTsKQEAgLTQxNDMsOCArNDE0NCw5IEBAIHhzaWduYWwgKExp c3BfT2JqZWN0IGVycm9yX3N5bWJvbCwgTGlzcF9PYmplY3QgZGF0YSkKICAgICAoTGlzcF9PYmpl Y3QgKCopIChwdHJkaWZmX3QsIExpc3BfT2JqZWN0ICopLCBwdHJkaWZmX3QsIExpc3BfT2JqZWN0 ICosCiAgICAgIExpc3BfT2JqZWN0LCBMaXNwX09iamVjdCAoKikgKExpc3BfT2JqZWN0LCBwdHJk aWZmX3QsIExpc3BfT2JqZWN0ICopKTsKIGV4dGVybiBMaXNwX09iamVjdCBpbnRlcm5hbF9jYXRj aF9hbGwgKExpc3BfT2JqZWN0ICgqKSAodm9pZCAqKSwgdm9pZCAqLCBMaXNwX09iamVjdCAoKikg KGVudW0gbm9ubG9jYWxfZXhpdCwgTGlzcF9PYmplY3QpKTsKLWV4dGVybiBzdHJ1Y3QgaGFuZGxl ciAqcHVzaF9oYW5kbGVyIChMaXNwX09iamVjdCwgZW51bSBoYW5kbGVydHlwZSk7Ci1leHRlcm4g c3RydWN0IGhhbmRsZXIgKnB1c2hfaGFuZGxlcl9ub3NpZ25hbCAoTGlzcF9PYmplY3QsIGVudW0g aGFuZGxlcnR5cGUpOworZXh0ZXJuIHN0cnVjdCBoYW5kbGVyICpwdXNoX2hhbmRsZXIgKExpc3Bf T2JqZWN0LCBlbnVtIGhhbmRsZXJ0eXBlLCB2b2lkICopOworZXh0ZXJuIHN0cnVjdCBoYW5kbGVy ICpwdXNoX2hhbmRsZXJfbm9zaWduYWwgKExpc3BfT2JqZWN0LCBlbnVtIGhhbmRsZXJ0eXBlLAor CQkJCQkgICAgICB2b2lkICopOwogZXh0ZXJuIHZvaWQgc3BlY2JpbmQgKExpc3BfT2JqZWN0LCBM aXNwX09iamVjdCk7CiBleHRlcm4gdm9pZCByZWNvcmRfdW53aW5kX3Byb3RlY3QgKHZvaWQgKCop IChMaXNwX09iamVjdCksIExpc3BfT2JqZWN0KTsKIGV4dGVybiB2b2lkIHJlY29yZF91bndpbmRf cHJvdGVjdF9hcnJheSAoTGlzcF9PYmplY3QgKiwgcHRyZGlmZl90KTsKQEAgLTUwNTAsOSArNTA1 MiwzNiBAQCAjZGVmaW5lIEZPUl9FQUNIX0FMSVNUX1ZBTFVFKGhlYWRfdmFyLCBsaXN0X3Zhciwg dmFsdWVfdmFyKQkJXAogCiAvKiBDaGVjayB3aGV0aGVyIGl0J3MgdGltZSBmb3IgR0MsIGFuZCBy dW4gaXQgaWYgc28uICAqLwogCisvKiBEbyBub3Qgd3JhcCBpbnRvIGRvIHsgfSB3aGlsZSAoMCku ICovCisKK3N0cnVjdCBkb250X2FsbG93X2djOworc3RydWN0IGRvbnRfYWxsb3dfZ2MKK3sKKyAg c3RydWN0IGRvbnRfYWxsb3dfZ2MgKnByZXY7Cit9OworCitleHRlcm4gc3RydWN0IGRvbnRfYWxs b3dfZ2MgKmdsb2JhbF9kb250X2FsbG93X2djOworCitJTkxJTkUgdm9pZAorZG9udF9hbGxvd19n Y19pbml0IChzdHJ1Y3QgZG9udF9hbGxvd19nYyAqZGFnKQoreworICBkYWctPnByZXYgPSBnbG9i YWxfZG9udF9hbGxvd19nYzsKKyAgZ2xvYmFsX2RvbnRfYWxsb3dfZ2MgPSBkYWc7Cit9CisKK0lO TElORSB2b2lkCitkb250X2FsbG93X2djX2Rlc3Ryb3kgKHN0cnVjdCBkb250X2FsbG93X2djICpk YWcpCit7CisgIGdsb2JhbF9kb250X2FsbG93X2djID0gZGFnLT5wcmV2OworfQorCisjZGVmaW5l IERPTlRfQUxMT1dfR0MoKSBzdHJ1Y3QgZG9udF9hbGxvd19nYyBfX2F0dHJpYnV0ZV9fICgoY2xl YW51cCAoZG9udF9hbGxvd19nY19kZXN0cm95KSkpIGRvbnRfYWxsb3dfZ2M7IGRvbnRfYWxsb3df Z2NfaW5pdCAoJmRvbnRfYWxsb3dfZ2MpCisKIElOTElORSB2b2lkCiBtYXliZV9nYyAodm9pZCkK IHsKKyAgaWYgKGdsb2JhbF9kb250X2FsbG93X2djKQorICAgIGZhdGFsICgiR0MgZGlzYWxsb3dl ZCIpOwogICBpZiAoY29uc2luZ191bnRpbF9nYyA8IDApCiAgICAgbWF5YmVfZ2FyYmFnZV9jb2xs ZWN0ICgpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL3RocmVhZC5jIGIvc3JjL3RocmVhZC5jCmluZGV4 IGY3NGY2MTExNDg2NDcuLjZmNWRlYjQxMDEwMzIgMTAwNjQ0Ci0tLSBhL3NyYy90aHJlYWQuYwor KysgYi9zcmMvdGhyZWFkLmMKQEAgLTc0OCw3ICs3NDgsNyBAQCBydW5fdGhyZWFkICh2b2lkICpz dGF0ZSkKICAgICAgd2hpY2ggd291bGQgb3RoZXJ3aXNlIGxlYWsgZXZlcnkgdGltZSB3ZSB1bndp bmQgYmFjayB0byB0b3AtbGV2ZWwuICAgKi8KICAgaGFuZGxlcmxpc3Rfc2VudGluZWwgPSB4emFs bG9jIChzaXplb2YgKHN0cnVjdCBoYW5kbGVyKSk7CiAgIGhhbmRsZXJsaXN0ID0gaGFuZGxlcmxp c3Rfc2VudGluZWwtPm5leHRmcmVlID0gaGFuZGxlcmxpc3Rfc2VudGluZWw7Ci0gIHN0cnVjdCBo YW5kbGVyICpjID0gcHVzaF9oYW5kbGVyIChRdW5ib3VuZCwgQ0FUQ0hFUik7CisgIHN0cnVjdCBo YW5kbGVyICpjID0gcHVzaF9oYW5kbGVyIChRdW5ib3VuZCwgQ0FUQ0hFUiwgX19idWlsdGluX2Zy YW1lX2FkZHJlc3MgKDApKTsKICAgZWFzc2VydCAoYyA9PSBoYW5kbGVybGlzdF9zZW50aW5lbCk7 CiAgIGhhbmRsZXJsaXN0X3NlbnRpbmVsLT5uZXh0ZnJlZSA9IE5VTEw7CiAgIGhhbmRsZXJsaXN0 X3NlbnRpbmVsLT5uZXh0ID0gTlVMTDsKLS0gCjIuMzAuMQoK --000000000000604f9905bcf2d3ca--