osdir.com
mailing list archive

Subject: Re: gdb/1922: `gdb -p' fails on FreeBSD unless procfs is mounted - msg#00043

List: gdb.bugs.discuss

Date: Prev Next Index Thread: Prev Next Index
The following reply was made to PR gdb/1922; it has been noted by GNATS.

From: David Schultz <das@xxxxxxxxxxx>
To: Paul Gilliam <pgilliam@xxxxxxxxxx>
Cc: gdb-prs@xxxxxxxxxxxxxxxxxx, gdb-gnats@xxxxxxxxxxxxxxxxxx,
marcel@xxxxxxxxxxx
Subject: Re: gdb/1922: `gdb -p' fails on FreeBSD unless procfs is mounted
Date: Wed, 20 Apr 2005 08:06:59 -0400

On Tue, Apr 19, 2005, Paul Gilliam wrote:
> On Monday 18 April 2005 22:13, das@xxxxxxxxxxx wrote:
> >
> > >Number: 1922
> > >Category: gdb
> > >Synopsis: `gdb -p' fails on FreeBSD unless procfs is mounted
> > >Confidential: no
> > >Severity: serious
> > >Priority: medium
> > >Responsible: unassigned
> > >State: open
> > >Class: patch
> > >Submitter-Id: net
> > >Arrival-Date: Tue Apr 19 05:18:00 UTC 2005
> > >Closed-Date:
> > >Last-Modified:
> > >Originator: das@xxxxxxxxxxx
> > >Release: 6.1.1
> > >Organization:
> > >Environment:
> > FreeBSD VARK.MIT.EDU 6.0-CURRENT FreeBSD 6.0-CURRENT #7: Sun Apr 17
> > 20:58:41 EDT 2005
> > das@xxxxxxxxxxxx:/usr/scratch/vark/usr/home/t/freebsd/vark/src/sys/GENERIC
> > i386
> > >Description:
> > Invoking `gdb -p' on FreeBSD without procfs mounted causes gdb to crash
> > because it can't find the process' executable file. Subsequently, the
> > target process is killed. There are really two problems here:
> >
> > (1) gdb should use a different mechanism to find the
> > text file on FreeBSD.
> >
> > (2) gdb should cleanly detach from the process when it
> > detects an internal error such as this so the
> > process isn't killed.
>
> This might not always be "The Right Thing". The user should be able
> to choose: clean detach to kill.

For internal errors, that's certainly a reasonable course of action.
However, in this case we're dealing with an external error (couldn't
find the process' text file) that is handled improperly and reported
as an arcane internal error. It (hopefully) isn't as though gdb
needs to be worried that it accidentally corrupted the internal state
of the application. Hence, the only question gdb needs to ask is
whether it should try to continue debugging without symbols or
cleanly detach.



Was this page helpful?
Yes No
Thread at a glance:

Previous Message by Date: click to view message preview

sim/1923: Segmentation fault on x86-64 on simulated program load with arm-none-eabi-run

>Number: 1923 >Category: sim >Synopsis: Segmentation fault on x86-64 on simulated program load with >arm-none-eabi-run >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Tue Apr 19 17:48:00 UTC 2005 >Closed-Date: >Last-Modified: >Originator: Julian Brown >Release: GNU gdb 6.3.50.20050419-cvs >Organization: >Environment: Linux opteron 2.4.21-215-smp #1 SMP Tue Apr 27 16:05:19 UTC 2004 x86_64 unknown >Description: The simulator arm-none-eabi-run crashes with a segfault on x86-64 machines. This affects current CVS, and goes back at least as far as GNU gdb 6.3.50_2004-12-22-cvs. The native compiler is gcc (GCC) 3.2.2 (SuSE Linux), but the same happens with a native gcc 4.1 from cvs head. This is the backtrace from inside gdb, loading a canonical "hello world" compiled from C: (gdb) bt #0 0x0000002a957f508b in chunk_alloc () from /lib64/libc.so.6 #1 0x0000002a957f4bc1 in malloc () from /lib64/libc.so.6 #2 0x0000000040005642 in sim_load_file (sd=0x1, myname=0x401e3c40 "/home/julian/prefix-x64-arm-p/bin/arm-none-eabi-run", callback=0x401c0020, prog=0x7fbffff7df "hello2", prog_bfd=0x401e2af0, verbose_p=0, lma_p=0, do_write=0x40004428 <sim_write>) at /home/julian/gdb/src/sim/arm/../common/sim-load.c:121 #3 0x0000000040005394 in sim_load (sd=0x1, prog=0x7fbffff7df "hello2", abfd=0x401e2af0, from_tty=0) at /home/julian/gdb/src/sim/arm/wrapper.c:894 #4 0x0000000040002245 in main (ac=1, av=0x7fbffff500) at /home/julian/gdb/src/sim/arm/../common/run.c:230 #5 0x0000002a957a7087 in __libc_start_main () from /lib64/libc.so.6 #6 0x0000000040001d2a in _start () The same binary runs fine with arm-none-eabi-run on i686. >How-To-Repeat: Compile binutils, gcc, gdb with "--target=arm-none-eabi". Compile a "hello world" program, and try running it. >Fix: >Release-Note: >Audit-Trail: >Unformatted:

Next Message by Date: click to view message preview

gdb/1924: numerous spelling errors

>Number: 1924 >Category: gdb >Synopsis: numerous spelling errors >Confidential: no >Severity: non-critical >Priority: low >Responsible: unassigned >State: open >Class: change-request >Submitter-Id: net >Arrival-Date: Thu Apr 21 18:28:00 UTC 2005 >Closed-Date: >Last-Modified: >Originator: Jay.Kulpinski@xxxxxxxxxx >Release: gdb-6.3 >Organization: >Environment: N/A >Description: there are numerous spelling errors in the source code >How-To-Repeat: >Fix: apply attached patch >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="gdb63.spelling.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="gdb63.spelling.patch" ZGlmZiAtdU5yIG9yaWcvZ2RiLTYuMy9zaW0vUkVBRE1FLUhBQ0tJTkcgZ2RiLTYuMy9zaW0vUkVB RE1FLUhBQ0tJTkcKLS0tIG9yaWcvZ2RiLTYuMy9zaW0vUkVBRE1FLUhBQ0tJTkcJVGh1IEp1biAg NiAxMjozMzo0NSAyMDAyCisrKyBnZGItNi4zL3NpbS9SRUFETUUtSEFDS0lORwlUaHUgQXByIDIx IDEwOjA0OjMxIDIwMDUKQEAgLTE4OCwxMCArMTg4LDEwIEBACiBIb3dldmVyLCB0aGUgdXNlciBz aG91bGQgYmUgYXdhcmUgb2YgdGhlIGZvbGxvd2luZzoKIAogCW8JR0NDJ3MgYDxudW1iZXI+TEwn IGlzIE5PVCBhY2NlcHRhYmxlLgotCQlNaWNyb3NvZnQtQyBkb2Vzbid0IHJlY29uaXplIGl0Lgor CQlNaWNyb3NvZnQtQyBkb2Vzbid0IHJlY29nbml6ZSBpdC4KIAogCW8JTVNDJ3MgYDxudW1iZXI+ aTY0JyBpcyBOT1QgYWNjZXB0YWJsZS4KLQkJR0NDIGRvZXNuJ3QgcmVjb25pemUgaXQuCisJCUdD QyBkb2Vzbid0IHJlY29nbml6ZSBpdC4KIAogCW8JR0NDJ3MgYGxvbmcgbG9uZycgTVNDJ3MgYF9p bnQ2NCcgY2FuCiAJCU5PVCBiZSB1c2VkIHRvIGRlZmluZSA2NCBiaXQgaW50ZWdlciBkYXRhCmRp ZmYgLXVOciBvcmlnL2dkYi02LjMvc2ltL2NvbW1vbi9kdi1nbHVlLmMgZ2RiLTYuMy9zaW0vY29t bW9uL2R2LWdsdWUuYwotLS0gb3JpZy9nZGItNi4zL3NpbS9jb21tb24vZHYtZ2x1ZS5jCVR1ZSBN YXkgMTggMTc6MjA6MDcgMjAwNAorKysgZ2RiLTYuMy9zaW0vY29tbW9uL2R2LWdsdWUuYwlUaHUg QXByIDIxIDEwOjAwOjQ4IDIwMDUKQEAgLTI4NSw3ICsyODUsNyBAQAogICBpbnQgcmVnID0gKChh ZGRyIC0gZ2x1ZS0+YWRkcmVzcykgLyBzaXplb2YgKHVuc2lnbmVkX3dvcmQpKSAlIGdsdWUtPm5y X291dHB1dHM7CiAgIGlmIChucl9ieXRlcyAhPSBzaXplb2YgKHVuc2lnbmVkX3dvcmQpCiAgICAg ICB8fCAoYWRkciAlIHNpemVvZiAodW5zaWduZWRfd29yZCkpICE9IDApCi0gICAgaHdfYWJvcnQg KG1lLCAibWlzc2FsaWduZWQgcmVhZCBhY2Nlc3MgKCVkOjB4JWx4OiVkKSBub3Qgc3VwcG9ydGVk IiwKKyAgICBod19hYm9ydCAobWUsICJtaXNhbGlnbmVkIHJlYWQgYWNjZXNzICglZDoweCVseDol ZCkgbm90IHN1cHBvcnRlZCIsCiAJICAgICAgc3BhY2UsICh1bnNpZ25lZCBsb25nKWFkZHIsIG5y X2J5dGVzKTsKICAgKih1bnNpZ25lZF93b3JkKilkZXN0ID0gSDJCRV80KGdsdWUtPm91dHB1dFty ZWddKTsKICAgSFdfVFJBQ0UgKChtZSwgInJlYWQgLSBwb3J0ICVkICgweCVseCksIGxldmVsICVk IiwKQEAgLTMwNSw3ICszMDUsNyBAQAogICBpbnQgcmVnID0gKChhZGRyIC0gZ2x1ZS0+YWRkcmVz cykgLyBzaXplb2YgKHVuc2lnbmVkX3dvcmQpKSAlIG1heF9ucl9wb3J0czsKICAgaWYgKG5yX2J5 dGVzICE9IHNpemVvZiAodW5zaWduZWRfd29yZCkKICAgICAgIHx8IChhZGRyICUgc2l6ZW9mICh1 bnNpZ25lZF93b3JkKSkgIT0gMCkKLSAgICBod19hYm9ydCAobWUsICJtaXNzYWxpZ25lZCB3cml0 ZSBhY2Nlc3MgKCVkOjB4JWx4OiVkKSBub3Qgc3VwcG9ydGVkIiwKKyAgICBod19hYm9ydCAobWUs ICJtaXNhbGlnbmVkIHdyaXRlIGFjY2VzcyAoJWQ6MHglbHg6JWQpIG5vdCBzdXBwb3J0ZWQiLAog CSAgICAgIHNwYWNlLCAodW5zaWduZWQgbG9uZykgYWRkciwgbnJfYnl0ZXMpOwogICBnbHVlLT5v dXRwdXRbcmVnXSA9IEgyQkVfNCAoKih1bnNpZ25lZF93b3JkKilzb3VyY2UpOwogICBIV19UUkFD RSAoKG1lLCAid3JpdGUgLSBwb3J0ICVkICgweCVseCksIGxldmVsICVkIiwKZGlmZiAtdU5yIG9y aWcvZ2RiLTYuMy9zaW0vY29tbW9uL2h3LXBvcnRzLmMgZ2RiLTYuMy9zaW0vY29tbW9uL2h3LXBv cnRzLmMKLS0tIG9yaWcvZ2RiLTYuMy9zaW0vY29tbW9uL2h3LXBvcnRzLmMJVGh1IEFwciAxNSAy MTozNDo1NyAxOTk5CisrKyBnZGItNi4zL3NpbS9jb21tb24vaHctcG9ydHMuYwlUaHUgQXByIDIx IDEwOjA1OjE0IDIwMDUKQEAgLTEyOSw4ICsxMjksOCBAQAogCSAgJiYgb2xkX2VkZ2UtPmRlc3Rf cG9ydCA9PSBkZXN0X3BvcnQKIAkgICYmIG9sZF9lZGdlLT5teV9wb3J0ID09IG15X3BvcnQpCiAJ ewotCSAgaWYgKG9sZF9lZGdlLT5kaXNwb3NpdGlvbiA9PSBwZXJtZW5hbnRfb2JqZWN0KQotCSAg ICBod19hYm9ydCAobWUsICJhdHRlbXB0IHRvIGRlbGV0ZSBwZXJtZW5hbnQgcG9ydCBlZGdlIik7 CisJICBpZiAob2xkX2VkZ2UtPmRpc3Bvc2l0aW9uID09IHBlcm1hbmVudF9vYmplY3QpCisJICAg IGh3X2Fib3J0IChtZSwgImF0dGVtcHQgdG8gZGVsZXRlIHBlcm1hbmFudCBwb3J0IGVkZ2UiKTsK IAkgICpsaXN0ID0gb2xkX2VkZ2UtPm5leHQ7CiAJICBod19mcmVlIChtZSwgb2xkX2VkZ2UpOwog CSAgcmV0dXJuOwpAQCAtMTQ5LDcgKzE0OSw3IEBACiAgICAgICBzdHJ1Y3QgaHdfcG9ydF9lZGdl ICpvbGRfZWRnZSA9ICpsaXN0OwogICAgICAgc3dpdGNoIChvbGRfZWRnZS0+ZGlzcG9zaXRpb24p CiAJewotCWNhc2UgcGVybWVuYW50X29iamVjdDoKKwljYXNlIHBlcm1hbmVudF9vYmplY3Q6CiAJ ICBsaXN0ID0gJm9sZF9lZGdlLT5uZXh0OwogCSAgYnJlYWs7CiAJY2FzZSB0ZW1wb3Jhcnlfb2Jq ZWN0OgpAQCAtMjg2LDcgKzI4Niw3IEBACiAJICAgIH0KIAl9CiAgICAgfQotICBod19hYm9ydCAo bWUsICJVbnJlY29uaXplZCBwb3J0ICVzIiwgcG9ydF9uYW1lKTsKKyAgaHdfYWJvcnQgKG1lLCAi VW5yZWNvZ25pemVkIHBvcnQgJXMiLCBwb3J0X25hbWUpOwogICByZXR1cm4gMDsKIH0KIApkaWZm IC11TnIgb3JpZy9nZGItNi4zL3NpbS9jb21tb24vaHctcHJvcGVydGllcy5jIGdkYi02LjMvc2lt L2NvbW1vbi9ody1wcm9wZXJ0aWVzLmMKLS0tIG9yaWcvZ2RiLTYuMy9zaW0vY29tbW9uL2h3LXBy b3BlcnRpZXMuYwlGcmkgTm92IDIyIDIwOjEyOjA1IDIwMDIKKysrIGdkYi02LjMvc2ltL2NvbW1v bi9ody1wcm9wZXJ0aWVzLmMJV2VkIEFwciAyMCAxNjo0NTo1OSAyMDA1CkBAIC0xNzcsNyArMTc3 LDcgQEAKICAgICAgIHN0cnVjdCBod19wcm9wZXJ0eV9kYXRhICpjdXJyZW50ID0gKmRlbGV0ZV9w b2ludDsKICAgICAgIHN3aXRjaCAoY3VycmVudC0+cHJvcGVydHktPmRpc3Bvc2l0aW9uKQogCXsK LQljYXNlIHBlcm1lbmFudF9vYmplY3Q6CisJY2FzZSBwZXJtYW5lbnRfb2JqZWN0OgogCSAgLyog emFwIHRoZSBjdXJyZW50IHZhbHVlLCB3aWxsIGJlIGluaXRpYWxpemVkIGxhdGVyICovCiAJICBB U1NFUlQgKGN1cnJlbnQtPmluaXRfYXJyYXkgIT0gTlVMTCk7CiAJICBpZiAoY3VycmVudC0+cHJv cGVydHktPmFycmF5ICE9IE5VTEwpCkBAIC0yMTQsNyArMjE0LDcgQEAKICAgICB7CiAgICAgICBB U1NFUlQgKHByb3BlcnR5LT5pbml0X2FycmF5ICE9IE5VTEwpOwogICAgICAgQVNTRVJUIChwcm9w ZXJ0eS0+cHJvcGVydHktPmFycmF5ID09IE5VTEwpOwotICAgICAgQVNTRVJUKHByb3BlcnR5LT5w cm9wZXJ0eS0+ZGlzcG9zaXRpb24gPT0gcGVybWVuYW50X29iamVjdCk7CisgICAgICBBU1NFUlQo cHJvcGVydHktPnByb3BlcnR5LT5kaXNwb3NpdGlvbiA9PSBwZXJtYW5lbnRfb2JqZWN0KTsKICAg ICAgIHN3aXRjaCAocHJvcGVydHktPnByb3BlcnR5LT50eXBlKQogCXsKIAljYXNlIGFycmF5X3By b3BlcnR5OgpAQCAtMjUzLDcgKzI1Myw3IEBACiAgICAgewogICAgICAgc3dpdGNoIChwcm9wZXJ0 eS0+cHJvcGVydHktPmRpc3Bvc2l0aW9uKQogCXsKLQljYXNlIHBlcm1lbmFudF9vYmplY3Q6CisJ Y2FzZSBwZXJtYW5lbnRfb2JqZWN0OgogCSAgc3dpdGNoIChwcm9wZXJ0eS0+cHJvcGVydHktPnR5 cGUpCiAJICAgIHsKICNpZiAwCkBAIC0zNDIsNyArMzQyLDcgQEAKIHsKICAgaHdfYWRkX3Byb3Bl cnR5IChtZSwgcHJvcGVydHksIGFycmF5X3Byb3BlcnR5LAogCQkgICBhcnJheSwgc2l6ZW9mX2Fy cmF5LCBhcnJheSwgc2l6ZW9mX2FycmF5LAotCQkgICBOVUxMLCBwZXJtZW5hbnRfb2JqZWN0KTsK KwkJICAgTlVMTCwgcGVybWFuZW50X29iamVjdCk7CiB9CiAKIHZvaWQKQEAgLTM3OCw3ICszNzgs NyBAQAogICBod19hZGRfcHJvcGVydHkgKG1lLCBwcm9wZXJ0eSwgYm9vbGVhbl9wcm9wZXJ0eSwK IAkJICAgJm5ld19ib29sZWFuLCBzaXplb2YobmV3X2Jvb2xlYW4pLAogCQkgICAmbmV3X2Jvb2xl YW4sIHNpemVvZihuZXdfYm9vbGVhbiksCi0JCSAgIE5VTEwsIHBlcm1lbmFudF9vYmplY3QpOwor CQkgICBOVUxMLCBwZXJtYW5lbnRfb2JqZWN0KTsKIH0KIAogaW50CkBAIC00MDksNyArNDA5LDcg QEAKICAgaHdfYWRkX3Byb3BlcnR5IChtZSwgcHJvcGVydHksIGloYW5kbGVfcHJvcGVydHksCiAJ CSAgIGloYW5kbGUtPmZ1bGxfcGF0aCwgc3RybGVuKGloYW5kbGUtPmZ1bGxfcGF0aCkgKyAxLAog CQkgICBOVUxMLCAwLAotCQkgICBOVUxMLCBwZXJtZW5hbnRfb2JqZWN0KTsKKwkJICAgTlVMTCwg cGVybWFuZW50X29iamVjdCk7CiB9CiAjZW5kaWYKIApAQCAtNDI2LDcgKzQyNiw3IEBACiAgIGlm IChlbnRyeSA9PSBOVUxMKQogICAgIGh3X2Fib3J0IChtZSwgInByb3BlcnR5IFwiJXNcIiBub3Qg Zm91bmQiLCBwcm9wZXJ0eSk7CiAgIGlmIChlbnRyeS0+cHJvcGVydHktPnR5cGUgIT0gaWhhbmRs ZV9wcm9wZXJ0eQotICAgICAgfHwgZW50cnktPnByb3BlcnR5LT5kaXNwb3NpdGlvbiAhPSBwZXJt ZW5hbnRfb2JqZWN0KQorICAgICAgfHwgZW50cnktPnByb3BlcnR5LT5kaXNwb3NpdGlvbiAhPSBw ZXJtYW5lbnRfb2JqZWN0KQogICAgIGh3X2Fib3J0IChtZSwgInByb3BlcnR5IFwiJXNcIiBvZiB3 cm9uZyB0eXBlIiwgcHJvcGVydHkpOwogICBBU1NFUlQgKGVudHJ5LT5pbml0X2FycmF5ICE9IE5V TEwpOwogICAvKiB0aGUgZnVsbCBwYXRoICovCkBAIC00ODUsNyArNDg1LDcgQEAKICAgaHdfYWRk X3Byb3BlcnR5IChtZSwgcHJvcGVydHksIGludGVnZXJfcHJvcGVydHksCiAJCSAgICZpbnRlZ2Vy LCBzaXplb2YoaW50ZWdlciksCiAJCSAgICZpbnRlZ2VyLCBzaXplb2YoaW50ZWdlciksCi0JCSAg IE5VTEwsIHBlcm1lbmFudF9vYmplY3QpOworCQkgICBOVUxMLCBwZXJtYW5lbnRfb2JqZWN0KTsK IH0KIAogc2lnbmVkX2NlbGwKQEAgLTYxNiw3ICs2MTYsNyBAQAogICBod19hZGRfcHJvcGVydHkg KG1lLCBwcm9wZXJ0eSwgcmFuZ2VfYXJyYXlfcHJvcGVydHksCiAJCSAgIGNlbGxzLCBzaXplb2Zf Y2VsbHMsCiAJCSAgIGNlbGxzLCBzaXplb2ZfY2VsbHMsCi0JCSAgIE5VTEwsIHBlcm1lbmFudF9v YmplY3QpOworCQkgICBOVUxMLCBwZXJtYW5lbnRfb2JqZWN0KTsKICAgCiAgIGh3X2ZyZWUgKG1l LCBjZWxscyk7CiB9CkBAIC03MDYsNyArNzA2LDcgQEAKICAgaHdfYWRkX3Byb3BlcnR5IChtZSwg cHJvcGVydHksIHJlZ19hcnJheV9wcm9wZXJ0eSwKIAkJICAgY2VsbHMsIHNpemVvZl9jZWxscywK IAkJICAgY2VsbHMsIHNpemVvZl9jZWxscywKLQkJICAgTlVMTCwgcGVybWVuYW50X29iamVjdCk7 CisJCSAgIE5VTEwsIHBlcm1hbmVudF9vYmplY3QpOwogICAKICAgaHdfZnJlZSAobWUsIGNlbGxz KTsKIH0KQEAgLTc2MSw3ICs3NjEsNyBAQAogICBod19hZGRfcHJvcGVydHkgKG1lLCBwcm9wZXJ0 eSwgc3RyaW5nX3Byb3BlcnR5LAogCQkgICBzdHJpbmcsIHN0cmxlbihzdHJpbmcpICsgMSwKIAkJ ICAgc3RyaW5nLCBzdHJsZW4oc3RyaW5nKSArIDEsCi0JCSAgIE5VTEwsIHBlcm1lbmFudF9vYmpl Y3QpOworCQkgICBOVUxMLCBwZXJtYW5lbnRfb2JqZWN0KTsKIH0KIAogY29uc3QgY2hhciAqCkBA IC04MTQsNyArODE0LDcgQEAKICAgaHdfYWRkX3Byb3BlcnR5IChtZSwgcHJvcGVydHksIHN0cmlu Z19hcnJheV9wcm9wZXJ0eSwKIAkJICAgYXJyYXksIHNpemVvZl9hcnJheSwKIAkJICAgYXJyYXks IHNpemVvZl9hcnJheSwKLQkJICAgTlVMTCwgcGVybWVuYW50X29iamVjdCk7CisJCSAgIE5VTEws IHBlcm1hbmVudF9vYmplY3QpOwogfQogCiBpbnQKQEAgLTg5MSw3ICs4OTEsNyBAQAogICBUUkFD RSAodHJhY2VfZGV2aWNlcywKIAkgKCJod19hZGRfZHVwbGljYXRlX3Byb3BlcnR5KG1lPTB4JWx4 LCBwcm9wZXJ0eT0lcywgLi4uKVxuIiwKIAkgIChsb25nKW1lLCBwcm9wZXJ0eSkpOwotICBpZiAo b3JpZ2luYWwtPmRpc3Bvc2l0aW9uICE9IHBlcm1lbmFudF9vYmplY3QpCisgIGlmIChvcmlnaW5h bC0+ZGlzcG9zaXRpb24gIT0gcGVybWFuZW50X29iamVjdCkKICAgICBod19hYm9ydCAobWUsICJD YW4gb25seSBkdXBsaWNhdGUgcGVybWVuYW50IG9iamVjdHMiKTsKICAgLyogZmluZCB0aGUgb3Jp Z2luYWwncyBtYXN0ZXIgKi8KICAgbWFzdGVyID0gb3JpZ2luYWwtPm93bmVyLT5wcm9wZXJ0aWVz X29mX2h3OwpAQCAtOTA1LDUgKzkwNSw1IEBACiAJCSAgIG9yaWdpbmFsLT50eXBlLAogCQkgICBt YXN0ZXItPmluaXRfYXJyYXksIG1hc3Rlci0+c2l6ZW9mX2luaXRfYXJyYXksCiAJCSAgIG9yaWdp bmFsLT5hcnJheSwgb3JpZ2luYWwtPnNpemVvZl9hcnJheSwKLQkJICAgb3JpZ2luYWwsIHBlcm1l bmFudF9vYmplY3QpOworCQkgICBvcmlnaW5hbCwgcGVybWFuZW50X29iamVjdCk7CiB9CmRpZmYg LXVOciBvcmlnL2dkYi02LjMvc2ltL2NvbW1vbi9ody10cmVlLmMgZ2RiLTYuMy9zaW0vY29tbW9u L2h3LXRyZWUuYwotLS0gb3JpZy9nZGItNi4zL3NpbS9jb21tb24vaHctdHJlZS5jCUZyaSBKdWwg IDkgMjA6NDA6MjUgMjAwNAorKysgZ2RiLTYuMy9zaW0vY29tbW9uL2h3LXRyZWUuYwlUaHUgQXBy IDIxIDEwOjA1OjA5IDIwMDUKQEAgLTg1NiwxMSArODU2LDExIEBACiAJCQkgICAgbXlfcG9ydCwK IAkJCSAgICBkZXN0LAogCQkJICAgIGRlc3RfcG9ydCwKLQkJCSAgICBwZXJtZW5hbnRfb2JqZWN0 KTsKKwkJCSAgICBwZXJtYW5lbnRfb2JqZWN0KTsKIAkgICAgYnJlYWs7CiAJICB9CiAJZGVmYXVs dDoKLQkgIGh3X2Fib3J0IChjdXJyZW50LCAidW5yZWNvbmlzZWQgaW50ZXJydXB0IHNwZWMgJXNc biIsIHNwZWMudmFsdWUpOworCSAgaHdfYWJvcnQgKGN1cnJlbnQsICJ1bnJlY29nbmlzZWQgaW50 ZXJydXB0IHNwZWMgJXNcbiIsIHNwZWMudmFsdWUpOwogCSAgYnJlYWs7CiAJfQogICAgIH0KZGlm ZiAtdU5yIG9yaWcvZ2RiLTYuMy9zaW0vY29tbW9uL3NpbS1iYXNpY3MuaCBnZGItNi4zL3NpbS9j b21tb24vc2ltLWJhc2ljcy5oCi0tLSBvcmlnL2dkYi02LjMvc2ltL2NvbW1vbi9zaW0tYmFzaWNz LmgJTW9uIE1heSAxMCAxMjoxODowMyAyMDA0CisrKyBnZGItNi4zL3NpbS9jb21tb24vc2ltLWJh c2ljcy5oCVdlZCBBcHIgMjAgMTY6NDU6MjEgMjAwNQpAQCAtMTAzLDcgKzEwMyw3IEBACiAvKiBk aXNwb3NpdGlvbiBvZiBhbiBvYmplY3Qgd2hlbiB0aGluZ3MgYXJlIHJlc2V0ICovCiAKIHR5cGVk ZWYgZW51bSB7Ci0gIHBlcm1lbmFudF9vYmplY3QsCisgIHBlcm1hbmVudF9vYmplY3QsCiAgIHRl bXBvcmFyeV9vYmplY3QsCiB9IG9iamVjdF9kaXNwb3NpdGlvbjsKIApkaWZmIC11TnIgb3JpZy9n ZGItNi4zL3NpbS9jb21tb24vc2ltLWNvcmUuYyBnZGItNi4zL3NpbS9jb21tb24vc2ltLWNvcmUu YwotLS0gb3JpZy9nZGItNi4zL3NpbS9jb21tb24vc2ltLWNvcmUuYwlGcmkgRGVjIDE5IDA2OjQz OjU2IDIwMDMKKysrIGdkYi02LjMvc2ltL2NvbW1vbi9zaW0tY29yZS5jCVdlZCBBcHIgMjAgMTY6 NDY6NDUgMjAwNQpAQCAtNjc3LDcgKzY3Nyw3IEBACiAgIGVsc2UgewogICAgIGlmIChpc194b3Ip CiAgICAgICBzaW1fZW5naW5lX2Fib3J0IChzZCwgTlVMTCwgTlVMTF9DSUEsCi0JCQkiQXR0ZW1w dGVkIHRvIGVuYWJsZSB4b3ItZW5kaWFuIG1vZGUgd2hlbiBwZXJtZW5hbnRseSBkaXNhYmxlZC4i KTsKKwkJCSJBdHRlbXB0ZWQgdG8gZW5hYmxlIHhvci1lbmRpYW4gbW9kZSB3aGVuIHBlcm1hbmFu dGx5IGRpc2FibGVkLiIpOwogICB9CiB9CiAjZW5kaWYKZGlmZiAtdU5yIG9yaWcvZ2RiLTYuMy9z aW0vY29tbW9uL3NpbS1jb3JlLmggZ2RiLTYuMy9zaW0vY29tbW9uL3NpbS1jb3JlLmgKLS0tIG9y aWcvZ2RiLTYuMy9zaW0vY29tbW9uL3NpbS1jb3JlLmgJRnJpIE5vdiAyMiAyMDoxMjowNSAyMDAy CisrKyBnZGItNi4zL3NpbS9jb21tb24vc2ltLWNvcmUuaAlUaHUgQXByIDIxIDEwOjAwOjQxIDIw MDUKQEAgLTI1OSw3ICsyNTksNyBAQAogICAgb2YgYW4gTiBieXRlIHRyYW5zZmVyLiBBY3Rpb24s IGFzIGRlZmluZWQgYnkgV0lUSF9BTElHTk1FTlQsIGJlaW5nCiAgICB0YWtlbiBzaG91bGQgdGhl IGNoZWNrIGZhaWwuCiAKLSAgIE1JU1NBTElHTkVEIHRyYW5zZmVycyB0aGUgZGF0YSByZWdhcmRs ZXNzLgorICAgTUlTQUxJR05FRCB0cmFuc2ZlcnMgdGhlIGRhdGEgcmVnYXJkbGVzcy4KIAogICAg TWlzYWxpZ25lZCB4b3ItZW5kaWFuIGFjY2Vzc2VzIGFyZSBicm9rZW4gaW50byBhIHNlcXVlbmNl IG9mCiAgICB0cmFuc2ZlcnMgZWFjaCA8PSBXSVRIX1hPUl9FTkRJQU4gYnl0ZXMgKi8KZGlmZiAt dU5yIG9yaWcvZ2RiLTYuMy9zaW0vZDMwdi9zaW0tY2FsbHMuYyBnZGItNi4zL3NpbS9kMzB2L3Np bS1jYWxscy5jCi0tLSBvcmlnL2dkYi02LjMvc2ltL2QzMHYvc2ltLWNhbGxzLmMJU2F0IEp1bCAx MyAyMDoxNToyMCAyMDAyCisrKyBnZGItNi4zL3NpbS9kMzB2L3NpbS1jYWxscy5jCVRodSBBcHIg MjEgMTA6MDQ6NDUgMjAwNQpAQCAtNjUsNyArNjUsNyBAQAogLyogT0JTT0xFVEUgCVRSQUNFX0NB TExfUCA9IDA7ICovCiAvKiBPQlNPTEVURSAgICAgICBlbHNlICovCiAvKiBPQlNPTEVURSAJeyAq LwotLyogT0JTT0xFVEUgCSAgc2ltX2lvX2VwcmludGYgKHNkLCAiVW5yZWNvbml6ZWQgLS10cmFj ZS1jYWxsIG9wdGlvbiBgJXMnXG4iLCBhcmcpOyAqLworLyogT0JTT0xFVEUgCSAgc2ltX2lvX2Vw cmludGYgKHNkLCAiVW5yZWNvZ25pemVkIC0tdHJhY2UtY2FsbCBvcHRpb24gYCVzJ1xuIiwgYXJn KTsgKi8KIC8qIE9CU09MRVRFIAkgIHJldHVybiBTSU1fUkNfRkFJTDsgKi8KIC8qIE9CU09MRVRF IAl9ICovCiAvKiBPQlNPTEVURSAgICAgICByZXR1cm4gU0lNX1JDX09LOyAqLwpAQCAtNzcsNyAr NzcsNyBAQAogLyogT0JTT0xFVEUgCVRSQUNFX1RSQVBfUCA9IDA7ICovCiAvKiBPQlNPTEVURSAg ICAgICBlbHNlICovCiAvKiBPQlNPTEVURSAJeyAqLwotLyogT0JTT0xFVEUgCSAgc2ltX2lvX2Vw cmludGYgKHNkLCAiVW5yZWNvbml6ZWQgLS10cmFjZS1jYWxsIG9wdGlvbiBgJXMnXG4iLCBhcmcp OyAqLworLyogT0JTT0xFVEUgCSAgc2ltX2lvX2VwcmludGYgKHNkLCAiVW5yZWNvZ25pemVkIC0t dHJhY2UtY2FsbCBvcHRpb24gYCVzJ1xuIiwgYXJnKTsgKi8KIC8qIE9CU09MRVRFIAkgIHJldHVy biBTSU1fUkNfRkFJTDsgKi8KIC8qIE9CU09MRVRFIAl9ICovCiAvKiBPQlNPTEVURSAgICAgICBy ZXR1cm4gU0lNX1JDX09LOyAqLwpkaWZmIC11TnIgb3JpZy9nZGItNi4zL3NpbS9pZ2VuL2lnZW4u YyBnZGItNi4zL3NpbS9pZ2VuL2lnZW4uYwotLS0gb3JpZy9nZGItNi4zL3NpbS9pZ2VuL2lnZW4u YwlUaHUgTm92IDIxIDIzOjIwOjQ5IDIwMDIKKysrIGdkYi02LjMvc2ltL2lnZW4vaWdlbi5jCVRo dSBBcHIgMjEgMTA6MDQ6NTIgMjAwNQpAQCAtMTI4Myw3ICsxMjgzLDcgQEAKIAkJICB9CiAJCWlm IChuYW1lcyA9PSBOVUxMKQogCQkgIHsKLQkJICAgIGVycm9yIChOVUxMLCAiUHJlZml4IGAlcycg dW5yZWNvbml6ZWRcbiIsIG9wdGFyZyk7CisJCSAgICBlcnJvciAoTlVMTCwgIlByZWZpeCBgJXMn IHVucmVjb2duaXplZFxuIiwgb3B0YXJnKTsKIAkJICB9CiAJICAgICAgfQogCSAgICBzd2l0Y2gg KGNoKQpkaWZmIC11TnIgb3JpZy9nZGItNi4zL3NpbS9pZ2VuL2xkLWluc24uYyBnZGItNi4zL3Np bS9pZ2VuL2xkLWluc24uYwotLS0gb3JpZy9nZGItNi4zL3NpbS9pZ2VuL2xkLWluc24uYwlUaHUg Tm92IDIxIDIzOjIwOjQ5IDIwMDIKKysrIGdkYi02LjMvc2ltL2lnZW4vbGQtaW5zbi5jCVRodSBB cHIgMjEgMTA6MDQ6NTcgMjAwNQpAQCAtMTIwMSw3ICsxMjAxLDcgQEAKIAkJJiYgIWZpbHRlcl9p c19tZW1iZXIgKG9wdGlvbnMuZm9ybWF0X25hbWVfZmlsdGVyLAogCQkJCSAgICAgIG5ld19pbnNu LT5mb3JtYXRfbmFtZSkpCiAJICAgICAgZXJyb3IgKG5ld19pbnNuLT5saW5lLAotCQkgICAgICJV bnJlY29uaXplZCBpbnN0cnVjdGlvbiBmb3JtYXQgbmFtZSBgJXMnXG4iLAorCQkgICAgICJVbnJl Y29nbml6ZWQgaW5zdHJ1Y3Rpb24gZm9ybWF0IG5hbWUgYCVzJ1xuIiwKIAkJICAgICBuZXdfaW5z bi0+Zm9ybWF0X25hbWUpOwogCSAgICBmaWx0ZXJfcGFyc2UgKCZuZXdfaW5zbi0+b3B0aW9ucywK IAkJCSAgcmVjb3JkLT5maWVsZFtpbnNuX29wdGlvbnNfZmllbGRdKTsKZGlmZiAtdU5yIG9yaWcv Z2RiLTYuMy9zaW0vaWdlbi90YWJsZS5oIGdkYi02LjMvc2ltL2lnZW4vdGFibGUuaAotLS0gb3Jp Zy9nZGItNi4zL3NpbS9pZ2VuL3RhYmxlLmgJVGh1IE5vdiAyMSAyMzoyMDo0OSAyMDAyCisrKyBn ZGItNi4zL3NpbS9pZ2VuL3RhYmxlLmgJVGh1IEFwciAyMSAxMDowNTowMyAyMDA1CkBAIC01MSw3 ICs1MSw3IEBACiAgICAgIExpbmVzIGNvbnRhaW5pbmcgdHdvIGxlYWRpbmcgc3BhY2VzIGhhdmUg dGhvc2Ugc3BhY2VzIHN0cmlwZWQuCiAgICAgIGZpZWxkc1tpXSBpcyB0aGUgaSd0aCBsaW5lIHdp dGggdGhlIDxubD4gZGlzY2FyZGVkLgogCi0gICBJbiBhZGRpdGlvbiwgdGhlIHRhYmxlIHBhcnNl ciByZWNvbmlzZXMgYW5kIGhhbmRsZXMgaW50ZXJuYWxseSB0aGUKKyAgIEluIGFkZGl0aW9uLCB0 aGUgdGFibGUgcGFyc2VyIHJlY29nbmlzZXMgYW5kIGhhbmRsZXMgaW50ZXJuYWxseSB0aGUKICAg IGZvbGxvd2luZyAod2hlbiBub3QgaW4gYSBjb2RlIGJsb2NrKToKIAogICAgICAiIyIgPGxpbmUt bnI+ICciJyA8ZmlsZT4gJyInCmRpZmYgLXVOciBvcmlnL2dkYi02LjMvc2ltL3BwYy9SVU4gZ2Ri LTYuMy9zaW0vcHBjL1JVTgotLS0gb3JpZy9nZGItNi4zL3NpbS9wcGMvUlVOCVRodSBBcHIgMTUg MjE6MzU6MDggMTk5OQorKysgZ2RiLTYuMy9zaW0vcHBjL1JVTglUaHUgQXByIDIxIDEwOjAwOjEx IDIwMDUKQEAgLTM0Niw3ICszNDYsNyBAQAogCS1vICcvb3BlbnByb20vb3B0aW9ucy9hbGlnbm1l bnQgPE4+JwogCiAJCVdoZXJlIDxOPiBpcyAxIC0gbm9uc3RyaWN0IG9yIDIgLSBzdHJpY3QuCi0J CVNwZWNpZnkgaWYgdGhlIG1pc3NhbGlnbmVkIGFjY2VzcyBhcmUgYWxsb3dlZAorCQlTcGVjaWZ5 IGlmIHRoZSBtaXNhbGlnbmVkIGFjY2VzcyBhcmUgYWxsb3dlZAogCQkobm9uLXN0cmljdCkgb3Ig cmVzdWx0IGluIGFuIGFsaWdubWVudCBleGNlcHRpb24KIAkJKHN0cmljdCkuCiAKZGlmZiAtdU5y IG9yaWcvZ2RiLTYuMy9zaW0vcHBjL2Jhc2ljcy5oIGdkYi02LjMvc2ltL3BwYy9iYXNpY3MuaAot LS0gb3JpZy9nZGItNi4zL3NpbS9wcGMvYmFzaWNzLmgJVGh1IEFwciAxNSAyMTozNTowOCAxOTk5 CisrKyBnZGItNi4zL3NpbS9wcGMvYmFzaWNzLmgJV2VkIEFwciAyMCAxNjo0MToxOSAyMDA1CkBA IC02OSw3ICs2OSw3IEBACiAvKiBkaXNwb3NpdGlvbiBvZiBhbiBvYmplY3Qgd2hlbiB0aGluZ3Mg YXJlIG5leHQgcmVzdGFydGVkICovCiAKIHR5cGVkZWYgZW51bSB7Ci0gIHBlcm1lbmFudF9vYmpl Y3QsCisgIHBlcm1hbmVudF9vYmplY3QsCiAgIHRlbXBvYXJ5X29iamVjdCwKIH0gb2JqZWN0X2Rp c3Bvc2l0aW9uOwogCmRpZmYgLXVOciBvcmlnL2dkYi02LjMvc2ltL3BwYy9jb3JlZmlsZS5jIGdk Yi02LjMvc2ltL3BwYy9jb3JlZmlsZS5jCi0tLSBvcmlnL2dkYi02LjMvc2ltL3BwYy9jb3JlZmls ZS5jCVRodSBBcHIgMTUgMjE6MzU6MDggMTk5OQorKysgZ2RiLTYuMy9zaW0vcHBjL2NvcmVmaWxl LmMJV2VkIEFwciAyMCAxNTo1NjoyOCAyMDA1CkBAIC0yOTIsNyArMjkyLDcgQEAKICAgICBtYXBw aW5nID0gbWFwcGluZy0+bmV4dDsKICAgfQogICBpZiAoYWJvcnQpCi0gICAgZXJyb3IoImNvcmVf ZmluZF9tYXBwaW5nKCkgLSBhY2Nlc3MgdG8gdW5tYXBlZCBhZGRyZXNzLCBhdHRhY2ggYSBkZWZh dWx0IG1hcCB0byBoYW5kbGUgdGhpcyAtIGFkZHI9MHgleCBucl9ieXRlcz0weCV4IHByb2Nlc3Nv cj0weCV4IGNpYT0weCV4XG4iLAorICAgIGVycm9yKCJjb3JlX2ZpbmRfbWFwcGluZygpIC0gYWNj ZXNzIHRvIHVubWFwcGVkIGFkZHJlc3MsIGF0dGFjaCBhIGRlZmF1bHQgbWFwIHRvIGhhbmRsZSB0 aGlzIC0gYWRkcj0weCV4IG5yX2J5dGVzPTB4JXggcHJvY2Vzc29yPTB4JXggY2lhPTB4JXhcbiIs CiAJICBhZGRyLCBucl9ieXRlcywgcHJvY2Vzc29yLCBjaWEpOwogICByZXR1cm4gTlVMTDsKIH0K ZGlmZiAtdU5yIG9yaWcvZ2RiLTYuMy9zaW0vcHBjL2RldmljZS5jIGdkYi02LjMvc2ltL3BwYy9k ZXZpY2UuYwotLS0gb3JpZy9nZGItNi4zL3NpbS9wcGMvZGV2aWNlLmMJVGh1IEFwciAxNSAyMToz NTowOCAxOTk5CisrKyBnZGItNi4zL3NpbS9wcGMvZGV2aWNlLmMJV2VkIEFwciAyMCAxNjo0MTo0 MSAyMDA1CkBAIC05OCw4ICs5OCw4IEBACiAgICAgaWYgKG9sZF9lZGdlLT5kZXN0ID09IGRlc3QK IAkmJiBvbGRfZWRnZS0+ZGVzdF9wb3J0ID09IGRlc3RfcG9ydAogCSYmIG9sZF9lZGdlLT5teV9w b3J0ID09IG15X3BvcnQpIHsKLSAgICAgIGlmIChvbGRfZWRnZS0+ZGlzcG9zaXRpb24gPT0gcGVy bWVuYW50X29iamVjdCkKLQlkZXZpY2VfZXJyb3IobWUsICJhdHRlbXB0IHRvIGRlbGV0ZSBwZXJt ZW5hbnQgaW50ZXJydXB0Iik7CisgICAgICBpZiAob2xkX2VkZ2UtPmRpc3Bvc2l0aW9uID09IHBl cm1hbmVudF9vYmplY3QpCisJZGV2aWNlX2Vycm9yKG1lLCAiYXR0ZW1wdCB0byBkZWxldGUgcGVy bWFuYW50IGludGVycnVwdCIpOwogICAgICAgKmxpc3QgPSBvbGRfZWRnZS0+bmV4dDsKICAgICAg IHpmcmVlKG9sZF9lZGdlKTsKICAgICAgIHJldHVybjsKQEAgLTExNSw3ICsxMTUsNyBAQAogICB3 aGlsZSAoKmxpc3QgIT0gTlVMTCkgewogICAgIGRldmljZV9pbnRlcnJ1cHRfZWRnZSAqb2xkX2Vk Z2UgPSAqbGlzdDsKICAgICBzd2l0Y2ggKG9sZF9lZGdlLT5kaXNwb3NpdGlvbikgewotICAgIGNh c2UgcGVybWVuYW50X29iamVjdDoKKyAgICBjYXNlIHBlcm1hbmVudF9vYmplY3Q6CiAgICAgICBs aXN0ID0gJm9sZF9lZGdlLT5uZXh0OwogICAgICAgYnJlYWs7CiAgICAgY2FzZSB0ZW1wb2FyeV9v YmplY3Q6CkBAIC04MTgsNyArODE4LDcgQEAKICAgd2hpbGUgKCpkZWxldGVfcG9pbnQgIT0gTlVM TCkgewogICAgIGRldmljZV9wcm9wZXJ0eV9lbnRyeSAqY3VycmVudCA9ICpkZWxldGVfcG9pbnQ7 CiAgICAgc3dpdGNoIChjdXJyZW50LT52YWx1ZS0+ZGlzcG9zaXRpb24pIHsKLSAgICBjYXNlIHBl cm1lbmFudF9vYmplY3Q6CisgICAgY2FzZSBwZXJtYW5lbnRfb2JqZWN0OgogICAgICAgLyogemFw IHRoZSBjdXJyZW50IHZhbHVlLCB3aWxsIGJlIGluaXRpYWxpemVkIGxhdGVyICovCiAgICAgICBB U1NFUlQoY3VycmVudC0+aW5pdF9hcnJheSAhPSBOVUxMKTsKICAgICAgIGlmIChjdXJyZW50LT52 YWx1ZS0+YXJyYXkgIT0gTlVMTCkgewpAQCAtODUyLDcgKzg1Miw3IEBACiAgICAgICAgcHJvcGVy dHkgPSBwcm9wZXJ0eS0+bmV4dCkgewogICAgIEFTU0VSVChwcm9wZXJ0eS0+aW5pdF9hcnJheSAh PSBOVUxMKTsKICAgICBBU1NFUlQocHJvcGVydHktPnZhbHVlLT5hcnJheSA9PSBOVUxMKTsKLSAg ICBBU1NFUlQocHJvcGVydHktPnZhbHVlLT5kaXNwb3NpdGlvbiA9PSBwZXJtZW5hbnRfb2JqZWN0 KTsKKyAgICBBU1NFUlQocHJvcGVydHktPnZhbHVlLT5kaXNwb3NpdGlvbiA9PSBwZXJtYW5lbnRf b2JqZWN0KTsKICAgICBzd2l0Y2ggKHByb3BlcnR5LT52YWx1ZS0+dHlwZSkgewogICAgIGNhc2Ug YXJyYXlfcHJvcGVydHk6CiAgICAgY2FzZSBib29sZWFuX3Byb3BlcnR5OgpAQCAtODg0LDcgKzg4 NCw3IEBACiAgICAgICAgcHJvcGVydHkgIT0gTlVMTDsKICAgICAgICBwcm9wZXJ0eSA9IHByb3Bl cnR5LT5uZXh0KSB7CiAgICAgc3dpdGNoIChwcm9wZXJ0eS0+dmFsdWUtPmRpc3Bvc2l0aW9uKSB7 Ci0gICAgY2FzZSBwZXJtZW5hbnRfb2JqZWN0OgorICAgIGNhc2UgcGVybWFuZW50X29iamVjdDoK ICAgICAgIHN3aXRjaCAocHJvcGVydHktPnZhbHVlLT50eXBlKSB7CiAgICAgICBjYXNlIGloYW5k bGVfcHJvcGVydHk6CiAJewpAQCAtOTY4LDcgKzk2OCw3IEBACiB7CiAgIGRldmljZV9hZGRfcHJv cGVydHkobWUsIHByb3BlcnR5LCBhcnJheV9wcm9wZXJ0eSwKICAgICAgICAgICAgICAgICAgICAg ICBhcnJheSwgc2l6ZW9mX2FycmF5LCBhcnJheSwgc2l6ZW9mX2FycmF5LAotICAgICAgICAgICAg ICAgICAgICAgIE5VTEwsIHBlcm1lbmFudF9vYmplY3QpOworICAgICAgICAgICAgICAgICAgICAg IE5VTEwsIHBlcm1hbmVudF9vYmplY3QpOwogfQogCiBJTkxJTkVfREVWSUNFXApAQCAtMTAwNSw3 ICsxMDA1LDcgQEAKICAgZGV2aWNlX2FkZF9wcm9wZXJ0eShtZSwgcHJvcGVydHksIGJvb2xlYW5f cHJvcGVydHksCiAgICAgICAgICAgICAgICAgICAgICAgJm5ld19ib29sZWFuLCBzaXplb2YobmV3 X2Jvb2xlYW4pLAogICAgICAgICAgICAgICAgICAgICAgICZuZXdfYm9vbGVhbiwgc2l6ZW9mKG5l d19ib29sZWFuKSwKLSAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBwZXJtZW5hbnRfb2JqZWN0 KTsKKyAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBwZXJtYW5lbnRfb2JqZWN0KTsKIH0KIAog SU5MSU5FX0RFVklDRVwKQEAgLTEwMzUsNyArMTAzNSw3IEBACiAgIGRldmljZV9hZGRfcHJvcGVy dHkobWUsIHByb3BlcnR5LCBpaGFuZGxlX3Byb3BlcnR5LAogCQkgICAgICBpaGFuZGxlLT5mdWxs X3BhdGgsIHN0cmxlbihpaGFuZGxlLT5mdWxsX3BhdGgpICsgMSwKIAkJICAgICAgTlVMTCwgMCwK LQkJICAgICAgTlVMTCwgcGVybWVuYW50X29iamVjdCk7CisJCSAgICAgIE5VTEwsIHBlcm1hbmVu dF9vYmplY3QpOwogfQogCiBJTkxJTkVfREVWSUNFXApAQCAtMTA1MCw3ICsxMDUwLDcgQEAKIAkg KGxvbmcpbWUsIHByb3BlcnR5KSk7CiAgIGlmIChlbnRyeSA9PSBOVUxMCiAgICAgICB8fCBlbnRy eS0+dmFsdWUtPnR5cGUgIT0gaWhhbmRsZV9wcm9wZXJ0eQotICAgICAgfHwgZW50cnktPnZhbHVl LT5kaXNwb3NpdGlvbiAhPSBwZXJtZW5hbnRfb2JqZWN0KQorICAgICAgfHwgZW50cnktPnZhbHVl LT5kaXNwb3NpdGlvbiAhPSBwZXJtYW5lbnRfb2JqZWN0KQogICAgIGRldmljZV9lcnJvcihtZSwg InByb3BlcnR5ICVzIG5vdCBmb3VuZCBvciBvZiB3cm9uZyB0eXBlIiwgcHJvcGVydHkpOwogICBB U1NFUlQoZW50cnktPmluaXRfYXJyYXkgIT0gTlVMTCk7CiAgIC8qIHRoZSBmdWxsIHBhdGggKi8K QEAgLTExMDUsNyArMTEwNSw3IEBACiAgIGRldmljZV9hZGRfcHJvcGVydHkobWUsIHByb3BlcnR5 LCBpbnRlZ2VyX3Byb3BlcnR5LAogICAgICAgICAgICAgICAgICAgICAgICZpbnRlZ2VyLCBzaXpl b2YoaW50ZWdlciksCiAgICAgICAgICAgICAgICAgICAgICAgJmludGVnZXIsIHNpemVvZihpbnRl Z2VyKSwKLSAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBwZXJtZW5hbnRfb2JqZWN0KTsKKyAg ICAgICAgICAgICAgICAgICAgICBOVUxMLCBwZXJtYW5lbnRfb2JqZWN0KTsKIH0KIAogSU5MSU5F X0RFVklDRVwKQEAgLTEyMzcsNyArMTIzNyw3IEBACiAgIGRldmljZV9hZGRfcHJvcGVydHkobWUs IHByb3BlcnR5LCByYW5nZV9hcnJheV9wcm9wZXJ0eSwKIAkJICAgICAgY2VsbHMsIHNpemVvZl9j ZWxscywKIAkJICAgICAgY2VsbHMsIHNpemVvZl9jZWxscywKLQkJICAgICAgTlVMTCwgcGVybWVu YW50X29iamVjdCk7CisJCSAgICAgIE5VTEwsIHBlcm1hbmVudF9vYmplY3QpOwogCiAgIHpmcmVl KGNlbGxzKTsKIH0KQEAgLTEzMjgsNyArMTMyOCw3IEBACiAgIGRldmljZV9hZGRfcHJvcGVydHko bWUsIHByb3BlcnR5LCByZWdfYXJyYXlfcHJvcGVydHksCiAJCSAgICAgIGNlbGxzLCBzaXplb2Zf Y2VsbHMsCiAJCSAgICAgIGNlbGxzLCBzaXplb2ZfY2VsbHMsCi0JCSAgICAgIE5VTEwsIHBlcm1l bmFudF9vYmplY3QpOworCQkgICAgICBOVUxMLCBwZXJtYW5lbnRfb2JqZWN0KTsKIAogICB6ZnJl ZShjZWxscyk7CiB9CkBAIC0xMzg0LDcgKzEzODQsNyBAQAogICBkZXZpY2VfYWRkX3Byb3BlcnR5 KG1lLCBwcm9wZXJ0eSwgc3RyaW5nX3Byb3BlcnR5LAogICAgICAgICAgICAgICAgICAgICAgIHN0 cmluZywgc3RybGVuKHN0cmluZykgKyAxLAogICAgICAgICAgICAgICAgICAgICAgIHN0cmluZywg c3RybGVuKHN0cmluZykgKyAxLAotICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIHBlcm1lbmFu dF9vYmplY3QpOworICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIHBlcm1hbmVudF9vYmplY3Qp OwogfQogCiBJTkxJTkVfREVWSUNFXApAQCAtMTQzNiw3ICsxNDM2LDcgQEAKICAgZGV2aWNlX2Fk ZF9wcm9wZXJ0eShtZSwgcHJvcGVydHksIHN0cmluZ19hcnJheV9wcm9wZXJ0eSwKIAkJICAgICAg YXJyYXksIHNpemVvZl9hcnJheSwKIAkJICAgICAgYXJyYXksIHNpemVvZl9hcnJheSwKLQkJICAg ICAgTlVMTCwgcGVybWVuYW50X29iamVjdCk7CisJCSAgICAgIE5VTEwsIHBlcm1hbmVudF9vYmpl Y3QpOwogfQogCiBJTkxJTkVfREVWSUNFXApAQCAtMTUwOSw4ICsxNTA5LDggQEAKICAgVFJBQ0Uo dHJhY2VfZGV2aWNlcywKIAkoImRldmljZV9hZGRfZHVwbGljYXRlX3Byb3BlcnR5KG1lPTB4JWx4 LCBwcm9wZXJ0eT0lcywgLi4uKVxuIiwKIAkgKGxvbmcpbWUsIHByb3BlcnR5KSk7Ci0gIGlmIChv cmlnaW5hbC0+ZGlzcG9zaXRpb24gIT0gcGVybWVuYW50X29iamVjdCkKLSAgICBkZXZpY2VfZXJy b3IobWUsICJDYW4gb25seSBkdXBsaWNhdGUgcGVybWVuYW50IG9iamVjdHMiKTsKKyAgaWYgKG9y aWdpbmFsLT5kaXNwb3NpdGlvbiAhPSBwZXJtYW5lbnRfb2JqZWN0KQorICAgIGRldmljZV9lcnJv cihtZSwgIkNhbiBvbmx5IGR1cGxpY2F0ZSBwZXJtYW5hbnQgb2JqZWN0cyIpOwogICAvKiBmaW5k IHRoZSBvcmlnaW5hbCdzIG1hc3RlciAqLwogICBtYXN0ZXIgPSBvcmlnaW5hbC0+b3duZXItPnBy b3BlcnRpZXM7CiAgIHdoaWxlIChtYXN0ZXItPnZhbHVlICE9IG9yaWdpbmFsKSB7CkBAIC0xNTIy LDcgKzE1MjIsNyBAQAogCQkgICAgICBvcmlnaW5hbC0+dHlwZSwKIAkJICAgICAgbWFzdGVyLT5p bml0X2FycmF5LCBtYXN0ZXItPnNpemVvZl9pbml0X2FycmF5LAogCQkgICAgICBvcmlnaW5hbC0+ YXJyYXksIG9yaWdpbmFsLT5zaXplb2ZfYXJyYXksCi0JCSAgICAgIG9yaWdpbmFsLCBwZXJtZW5h bnRfb2JqZWN0KTsKKwkJICAgICAgb3JpZ2luYWwsIHBlcm1hbmVudF9vYmplY3QpOwogfQogCiAK QEAgLTE3NDMsNyArMTc0Myw3IEBACiAgICAgICB9CiAgICAgfQogICB9Ci0gIGRldmljZV9lcnJv cihtZSwgIlVucmVjb25pemVkIGludGVycnVwdCBwb3J0ICVzIiwgcG9ydF9uYW1lKTsKKyAgZGV2 aWNlX2Vycm9yKG1lLCAiVW5yZWNvZ25pemVkIGludGVycnVwdCBwb3J0ICVzIiwgcG9ydF9uYW1l KTsKICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtdU5yIG9yaWcvZ2RiLTYuMy9zaW0vcHBjL2h3X2ds dWUuYyBnZGItNi4zL3NpbS9wcGMvaHdfZ2x1ZS5jCi0tLSBvcmlnL2dkYi02LjMvc2ltL3BwYy9o d19nbHVlLmMJVGh1IEFwciAxNSAyMTozNTowOSAxOTk5CisrKyBnZGItNi4zL3NpbS9wcGMvaHdf Z2x1ZS5jCVRodSBBcHIgMjEgMTA6MDA6MjUgMjAwNQpAQCAtMjU2LDcgKzI1Niw3IEBACiAgIGlu dCByZWcgPSAoKGFkZHIgLSBnbHVlLT5hZGRyZXNzKSAvIHNpemVvZih1bnNpZ25lZF93b3JkKSkg JSBnbHVlLT5ucl9vdXRwdXRzOwogICBpZiAobnJfYnl0ZXMgIT0gc2l6ZW9mKHVuc2lnbmVkX3dv cmQpCiAgICAgICB8fCAoYWRkciAlIHNpemVvZih1bnNpZ25lZF93b3JkKSkgIT0gMCkKLSAgICAg ZGV2aWNlX2Vycm9yKG1lLCAibWlzc2FsaWduZWQgcmVhZCBhY2Nlc3MgKCVkOjB4JWx4OiVkKSBu b3Qgc3VwcG9ydGVkIiwKKyAgICAgZGV2aWNlX2Vycm9yKG1lLCAibWlzYWxpZ25lZCByZWFkIGFj Y2VzcyAoJWQ6MHglbHg6JWQpIG5vdCBzdXBwb3J0ZWQiLAogCQkgIHNwYWNlLCAodW5zaWduZWQg bG9uZylhZGRyLCBucl9ieXRlcyk7CiAgICoodW5zaWduZWRfd29yZCopZGVzdCA9IEgyQkVfNChn bHVlLT5vdXRwdXRbcmVnXSk7CiAgIERUUkFDRShnbHVlLCAoInJlYWQgLSBpbnRlcnJ1cHQgJWQg KDB4JWx4KSwgbGV2ZWwgJWRcbiIsCkBAIC0yNzgsNyArMjc4LDcgQEAKICAgaW50IHJlZyA9ICgo YWRkciAtIGdsdWUtPmFkZHJlc3MpIC8gc2l6ZW9mKHVuc2lnbmVkX3dvcmQpKSAlIG1heF9ucl9p bnRlcnJ1cHRzOwogICBpZiAobnJfYnl0ZXMgIT0gc2l6ZW9mKHVuc2lnbmVkX3dvcmQpCiAgICAg ICB8fCAoYWRkciAlIHNpemVvZih1bnNpZ25lZF93b3JkKSkgIT0gMCkKLSAgICBkZXZpY2VfZXJy b3IobWUsICJtaXNzYWxpZ25lZCB3cml0ZSBhY2Nlc3MgKCVkOjB4JWx4OiVkKSBub3Qgc3VwcG9y dGVkIiwKKyAgICBkZXZpY2VfZXJyb3IobWUsICJtaXNhbGlnbmVkIHdyaXRlIGFjY2VzcyAoJWQ6 MHglbHg6JWQpIG5vdCBzdXBwb3J0ZWQiLAogCQkgc3BhY2UsICh1bnNpZ25lZCBsb25nKWFkZHIs IG5yX2J5dGVzKTsKICAgZ2x1ZS0+b3V0cHV0W3JlZ10gPSBIMkJFXzQoKih1bnNpZ25lZF93b3Jk Kilzb3VyY2UpOwogICBEVFJBQ0UoZ2x1ZSwgKCJ3cml0ZSAtIGludGVycnVwdCAlZCAoMHglbHgp LCBsZXZlbCAlZFxuIiwKZGlmZiAtdU5yIG9yaWcvZ2RiLTYuMy9zaW0vcHBjL2h3X2h0YWIuYyBn ZGItNi4zL3NpbS9wcGMvaHdfaHRhYi5jCi0tLSBvcmlnL2dkYi02LjMvc2ltL3BwYy9od19odGFi LmMJTW9uIEp1biAxNCAyMTowODo1NyAyMDA0CisrKyBnZGItNi4zL3NpbS9wcGMvaHdfaHRhYi5j CVRodSBBcHIgMjEgMTA6MDA6MTggMjAwNQpAQCAtNTU1LDExICs1NTUsMTEgQEAKIAkgICYmIHNp emVzLnRleHRfYm91bmQgPD0gc2l6ZXMuZGF0YV9ib3VuZCkKICAgICAgIHx8IChzaXplcy50ZXh0 X2Jhc2UgPj0gc2l6ZXMuZGF0YV9iYXNlCiAJICAmJiBzaXplcy50ZXh0X2Jhc2UgPCBzaXplcy5k YXRhX2JvdW5kKSkgewotICAgIERUUkFDRShodGFiLCAoInRleHQgYW5kIGRhdGEgc2VnbWVudCBv dmVybGFwZWQgLSB1c2luZyBqdXN0IGRhdGEgc2VnbWVudFxuIikpOworICAgIERUUkFDRShodGFi LCAoInRleHQgYW5kIGRhdGEgc2VnbWVudCBvdmVybGFwcGVkIC0gdXNpbmcganVzdCBkYXRhIHNl Z21lbnRcbiIpKTsKICAgICAvKiBjaGVjayB2YS0+cmEgbGluZWFyICovCiAgICAgaWYgKChzaXpl cy50ZXh0X2Jhc2UgLSBzaXplcy50ZXh0X3JhKQogCSE9IChzaXplcy5kYXRhX2Jhc2UgLSBzaXpl cy5kYXRhX3JhKSkKLSAgICAgIGRldmljZV9lcnJvcihtZSwgIm92ZXJsYXBwaW5nIGJ1dCBtaXNz YWxpZ25lZCB0ZXh0IGFuZCBkYXRhIHNlZ21lbnRzIik7CisgICAgICBkZXZpY2VfZXJyb3IobWUs ICJvdmVybGFwcGluZyBidXQgbWlzYWxpZ25lZCB0ZXh0IGFuZCBkYXRhIHNlZ21lbnRzIik7CiAg ICAgLyogZW5sYXJnZSB0aGUgZGF0YSBzZWdtZW50ICovCiAgICAgaWYgKHNpemVzLnRleHRfYmFz ZSA8IHNpemVzLmRhdGFfYmFzZSkKICAgICAgIHNpemVzLmRhdGFfYmFzZSA9IHNpemVzLnRleHRf YmFzZTsKQEAgLTU5OSw3ICs1OTksNyBAQAogewogICBkZXZpY2VfaW5zdGFuY2UgKm1lbW9yeSA9 IE5VTEw7CiAgIGlmIChXSVRIX1RBUkdFVF9XT1JEX0JJVFNJWkUgIT0gMzIpCi0gICAgZGV2aWNl X2Vycm9yKG1lLCAib25seSAzMmJpdCB0YXJnZXRzIGN1cnJlbnRseSBzdXBvcnRlZCIpOworICAg IGRldmljZV9lcnJvcihtZSwgIm9ubHkgMzJiaXQgdGFyZ2V0cyBjdXJyZW50bHkgc3VwcG9ydGVk Iik7CiAKICAgLyogZmluZCBtZW1vcnkgZGV2aWNlICovCiAgIGlmIChkZXZpY2VfZmluZF9wcm9w ZXJ0eShtZSwgImNsYWltIikgIT0gTlVMTCkKZGlmZiAtdU5yIG9yaWcvZ2RiLTYuMy9zaW0vcHBj L2h3X2luaXQuYyBnZGItNi4zL3NpbS9wcGMvaHdfaW5pdC5jCi0tLSBvcmlnL2dkYi02LjMvc2lt L3BwYy9od19pbml0LmMJTW9uIEp1biAxNCAyMTowODo1NyAyMDA0CisrKyBnZGItNi4zL3NpbS9w cGMvaHdfaW5pdC5jCVRodSBBcHIgMjEgMTA6MDE6NTYgMjAwNQpAQCAtNTQ2LDcgKzU0Niw3IEBA CiAgIHN0YXJ0X2FyZyArPSBzaXplb2Yoc3RhcnRfYmxvY2spOyAvKnRoZSBudWxsIGF0IHRoZSBl bmQqLwogICBpZiAoc3RhcnRfYmxvY2sgIT0gZW5kX2Jsb2NrCiAgICAgICB8fCBBTElHTl84KHN0 YXJ0X2FyZykgIT0gZW5kX2FyZykKLSAgICBkZXZpY2VfZXJyb3IobWUsICJQcm9iYWJsZSBjb3Jy cHV0aW9uIG9mIHN0YWNrIGFyZ3VtZW50c1xuIik7CisgICAgZGV2aWNlX2Vycm9yKG1lLCAiUHJv YmFibGUgY29ycnVwdGlvbiBvZiBzdGFjayBhcmd1bWVudHNcbiIpOwogICBEVFJBQ0Uoc3RhY2ss ICgid3JpdGVfc3RhY2tfYXJndW1lbnRzKCkgPSB2b2lkXG4iKSk7CiB9CiAKZGlmZiAtdU5yIG9y aWcvZ2RiLTYuMy9zaW0vcHBjL2h3X29waWMuYyBnZGItNi4zL3NpbS9wcGMvaHdfb3BpYy5jCi0t LSBvcmlnL2dkYi02LjMvc2ltL3BwYy9od19vcGljLmMJVGh1IEFwciAxNSAyMTozNTowOSAxOTk5 CisrKyBnZGItNi4zL3NpbS9wcGMvaHdfb3BpYy5jCVdlZCBBcHIgMjAgMTU6NTc6NTkgMjAwNQpA QCAtMTM5OCw3ICsxMzk4LDcgQEAKICAgb3BpY190aW1lciAqdGltZXIgPSBkYXRhOwogICBkZXZp Y2UgKm1lID0gdGltZXItPm1lOwogICBpZiAodGltZXItPmluaGliaXRlZCkKLSAgICBkZXZpY2Vf ZXJyb3IodGltZXItPm1lLCAiaW50ZXJuYWwtZXJyb3IgLSB0aW1lciBldmVudCBvY2N1cmVkIHdo ZW4gdGltZXIgJWQgaW5oaWJpdGVkIiwKKyAgICBkZXZpY2VfZXJyb3IodGltZXItPm1lLCAiaW50 ZXJuYWwtZXJyb3IgLSB0aW1lciBldmVudCBvY2N1cnJlZCB3aGVuIHRpbWVyICVkIGluaGliaXRl ZCIsCiAJCSB0aW1lci0+bnIpOwogICBoYW5kbGVfaW50ZXJydXB0KHRpbWVyLT5tZSwgdGltZXIt Pm9waWMsIHRpbWVyLT5pbnRlcnJ1cHRfc291cmNlLCAxKTsKICAgdGltZXItPnRpbWVvdXRfZXZl bnQgPSBkZXZpY2VfZXZlbnRfcXVldWVfc2NoZWR1bGUobWUsIHRpbWVyLT5iYXNlX2NvdW50LApk aWZmIC11TnIgb3JpZy9nZGItNi4zL3NpbS9wcGMvaHdfcGhiLmMgZ2RiLTYuMy9zaW0vcHBjL2h3 X3BoYi5jCi0tLSBvcmlnL2dkYi02LjMvc2ltL3BwYy9od19waGIuYwlUaHUgQXByIDE1IDIxOjM1 OjEwIDE5OTkKKysrIGdkYi02LjMvc2ltL3BwYy9od19waGIuYwlXZWQgQXByIDIwIDE2OjM1OjMy IDIwMDUKQEAgLTgzNCw3ICs4MzQsNyBAQAogICAgIGludCByZWdfbnI7CiAgICAgcmVnX3Byb3Bl cnR5X3NwZWMgYXNzaWduZWQ7CiAgICAgaWYgKGV4dHJhY3Rfc3MoYWRkcmVzcykgPT0gc3NfNjRi aXRfbWVtb3J5X2NvZGUpCi0gICAgICBkZXZpY2VfZXJyb3IobWUsICI2NGJpdCBtZW1vcnkgYWRk cmVzcyBub3QgdW5zdXBvcnRlZCIpOworICAgICAgZGV2aWNlX2Vycm9yKG1lLCAiNjRiaXQgbWVt b3J5IGFkZHJlc3Mgbm90IHVuc3VwcG9ydGVkIik7CiAgICAgZm9yIChyZWdfbnIgPSAwOwogCSBk ZXZpY2VfZmluZF9yZWdfYXJyYXlfcHJvcGVydHkoY2xpZW50LCAiYXNzaWduZWQtYWRkcmVzc2Vz IiwgcmVnX25yLAogCQkJCQkmYXNzaWduZWQpOwpkaWZmIC11TnIgb3JpZy9nZGItNi4zL3NpbS9w cGMvbWFpbi5jIGdkYi02LjMvc2ltL3BwYy9tYWluLmMKLS0tIG9yaWcvZ2RiLTYuMy9zaW0vcHBj L21haW4uYwlTdW4gSnVuICA5IDExOjQ1OjUxIDIwMDIKKysrIGdkYi02LjMvc2ltL3BwYy9tYWlu LmMJV2VkIEFwciAyMCAxNjoyNDo0NiAyMDA1CkBAIC0zMTksNyArMzE5LDcgQEAKICAgc3RhdHVz ID0gcHNpbV9nZXRfc3RhdHVzKHNpbXVsYXRpb24pOwogICBzd2l0Y2ggKHN0YXR1cy5yZWFzb24p IHsKICAgY2FzZSB3YXNfY29udGludWluZzoKLSAgICBlcnJvcigicHNpbTogY29udGludWluZyB3 aGlsZSBzdG9wZWQhXG4iKTsKKyAgICBlcnJvcigicHNpbTogY29udGludWluZyB3aGlsZSBzdG9w cGVkIVxuIik7CiAgICAgcmV0dXJuIDA7CiAgIGNhc2Ugd2FzX3RyYXA6CiAgICAgZXJyb3IoInBz aW06IG5vIHRyYXAgaW5zblxuIik7CmRpZmYgLXVOciBvcmlnL2dkYi02LjMvc2ltL3BwYy9vc19l bXVsLmMgZ2RiLTYuMy9zaW0vcHBjL29zX2VtdWwuYwotLS0gb3JpZy9nZGItNi4zL3NpbS9wcGMv b3NfZW11bC5jCVRodSBBcHIgMTUgMjE6MzU6MTEgMTk5OQorKysgZ2RiLTYuMy9zaW0vcHBjL29z X2VtdWwuYwlXZWQgQXByIDIwIDE2OjIwOjI4IDIwMDUKQEAgLTgyLDcgKzgyLDcgQEAKICAgZWxz ZQogICAgIGVtdWxhdGlvbl9uYW1lID0gTlVMTDsKIAotICAvKiBnbyB0aHJvdWdoIGVhY2ggZW11 bGF0aW9uIHRvIHNlZSBpZiB0aGV5IHJlY29uaXplIGl0LiBGSVhNRSAtCisgIC8qIGdvIHRocm91 Z2ggZWFjaCBlbXVsYXRpb24gdG8gc2VlIGlmIHRoZXkgcmVjb2duaXplIGl0LiBGSVhNRSAtCiAg ICAgIHNob3VsZCBoYXZlIHNvbWUgc29ydCBvZiBpbXBvcnRlZCB0YWJsZSBmcm9tIGEgc2VwYXJh dGUgZmlsZSAqLwogICB7CiAgICAgb3NfZW11bF9kYXRhICplbXVsX2RhdGE7CmRpZmYgLXVOciBv cmlnL2dkYi02LjMvc2ltL3BwYy9wa19kaXNrbGFiZWwuYyBnZGItNi4zL3NpbS9wcGMvcGtfZGlz a2xhYmVsLmMKLS0tIG9yaWcvZ2RiLTYuMy9zaW0vcHBjL3BrX2Rpc2tsYWJlbC5jCVRodSBBcHIg MTUgMjE6MzU6MTEgMTk5OQorKysgZ2RiLTYuMy9zaW0vcHBjL3BrX2Rpc2tsYWJlbC5jCVdlZCBB cHIgMjAgMTY6MTk6NTUgMjAwNQpAQCAtMTcxLDcgKzE3MSw3IEBACiAgIGRpc2tsYWJlbF9zZWVr LAogfTsKIAotLyogUmVjb25pemUgZGlmZmVyZW50IHR5cGVzIG9mIGJvb3QgYmxvY2sgKi8KKy8q IFJlY29nbml6ZSBkaWZmZXJlbnQgdHlwZXMgb2YgYm9vdCBibG9jayAqLwogCiBzdGF0aWMgaW50 CiBibG9jazBfaXNfYnBiKGNvbnN0IHVuc2lnbmVkOCBibG9ja1tdKQpAQCAtMzQ5LDcgKzM0OSw3 IEBACiAJZGV2aWNlX2Vycm9yKGRldmljZV9pbnN0YW5jZV9kZXZpY2UocmF3X2Rpc2spLCAiVW5p bXBsZW1lbnRlZCBhY3RpdmUgTUFDIERJU0siKTsKICAgICAgIH0KICAgICAgIGVsc2UgewotCWRl dmljZV9lcnJvcihkZXZpY2VfaW5zdGFuY2VfZGV2aWNlKHJhd19kaXNrKSwgIlVucmVjb25pemVk IGJvb3RibG9jayIpOworCWRldmljZV9lcnJvcihkZXZpY2VfaW5zdGFuY2VfZGV2aWNlKHJhd19k aXNrKSwgIlVucmVjb2duaXplZCBib290YmxvY2siKTsKICAgICAgIH0KICAgICB9CiAgICAgZWxz ZSB7CkBAIC0zODgsNyArMzg4LDcgQEAKICAgICAgIH0KICAgICAgIGVsc2UgewogCWRldmljZV9l cnJvcihkZXZpY2VfaW5zdGFuY2VfZGV2aWNlKHJhd19kaXNrKSwKLQkJICAgICAiVW5yZWNvbml6 ZWQgYm9vdGJsb2NrIik7CisJCSAgICAgIlVucmVjb2duaXplZCBib290YmxvY2siKTsKICAgICAg IH0KICAgICB9CiAgIH0KZGlmZiAtdU5yIG9yaWcvZ2RiLTYuMy9zaW0vcHBjL3BzaW0uYyBnZGIt Ni4zL3NpbS9wcGMvcHNpbS5jCi0tLSBvcmlnL2dkYi02LjMvc2ltL3BwYy9wc2ltLmMJU3VuIEp1 biAyMiAxMjo0ODoxMiAyMDAzCisrKyBnZGItNi4zL3NpbS9wcGMvcHNpbS5jCVdlZCBBcHIgMjAg MTU6NTk6NDggMjAwNQpAQCAtNDIzLDcgKzQyMyw3IEBACiAKICAgb3NfZW11bGF0aW9uID0gb3Nf ZW11bF9jcmVhdGUoZmlsZV9uYW1lLCByb290KTsKICAgaWYgKG9zX2VtdWxhdGlvbiA9PSBOVUxM KQotICAgIGVycm9yKCJwc2ltOiBlaXRoZXIgZmlsZSAlcyB3YXMgbm90IHJlY29uaXplZCBvciB1 bnJlY29uaXplZCBvciB1bmtub3duIG9zLWVtdWxhdGlvbiB0eXBlXG4iLCBmaWxlX25hbWUpOwor ICAgIGVycm9yKCJwc2ltOiBlaXRoZXIgZmlsZSAlcyB3YXMgbm90IHJlY29nbml6ZWQgb3IgdW5y ZWNvZ25pemVkIG9yIHVua25vd24gb3MtZW11bGF0aW9uIHR5cGVcbiIsIGZpbGVfbmFtZSk7CiAK ICAgLyogZmlsbCBpbiB0aGUgbWlzc2luZyByZWFsIG51bWJlciBvZiBDUFUncyAqLwogICBucl9j cHVzID0gdHJlZV9maW5kX2ludGVnZXJfcHJvcGVydHkocm9vdCwgIi9vcGVucHJvbS9vcHRpb25z L3NtcCIpOwpAQCAtNDU5LDcgKzQ1OSw3IEBACiAJCQkgPyBPUEVSQVRJTkdfRU5WSVJPTk1FTlQK IAkJCSA6IDApOwogICBpZiAoY3VycmVudF9lbnZpcm9ubWVudCA9PSAwKQotICAgIGVycm9yKCJ1 bnJlY29uaXplZCAvb3B0aW9ucyBlbnYgcHJvcGVydHlcbiIpOworICAgIGVycm9yKCJ1bnJlY29n bml6ZWQgL29wdGlvbnMgZW52IHByb3BlcnR5XG4iKTsKICAgaWYgKENVUlJFTlRfRU5WSVJPTk1F TlQgIT0gY3VycmVudF9lbnZpcm9ubWVudCkKICAgICBlcnJvcigidGFyZ2V0IGFuZCBjb25maWd1 cmVkIGVudmlyb25tZW50IGNvbmZsaWN0XG4iKTsKIApkaWZmIC11TnIgb3JpZy9nZGItNi4zL3Np bS9wcGMvdHJlZS5jIGdkYi02LjMvc2ltL3BwYy90cmVlLmMKLS0tIG9yaWcvZ2RiLTYuMy9zaW0v cHBjL3RyZWUuYwlTdW4gSnVsIDExIDE5OjQyOjA3IDIwMDQKKysrIGdkYi02LjMvc2ltL3BwYy90 cmVlLmMJV2VkIEFwciAyMCAxNjo0MTozMCAyMDA1CkBAIC03OTksMTEgKzc5OSwxMSBAQAogCQkJ CW15X3BvcnQsCiAJCQkJZGVzdCwKIAkJCQlkZXN0X3BvcnQsCi0JCQkJcGVybWVuYW50X29iamVj dCk7CisJCQkJcGVybWFuZW50X29iamVjdCk7CiAgICAgICB9CiAgICAgICBicmVhazsKICAgICBk ZWZhdWx0OgotICAgICAgZGV2aWNlX2Vycm9yKGN1cnJlbnQsICJ1bnJlY29uaXNlZCBpbnRlcnJ1 cHQgc3BlYyAlc1xuIiwgc3BlYy52YWx1ZSk7CisgICAgICBkZXZpY2VfZXJyb3IoY3VycmVudCwg InVucmVjb2duaXplZCBpbnRlcnJ1cHQgc3BlYyAlc1xuIiwgc3BlYy52YWx1ZSk7CiAgICAgICBi cmVhazsKICAgICB9CiAgIH0KZGlmZiAtdU5yIG9yaWcvZ2RiLTYuMy9zaW0vcHBjL3RyZWUuaCBn ZGItNi4zL3NpbS9wcGMvdHJlZS5oCi0tLSBvcmlnL2dkYi02LjMvc2ltL3BwYy90cmVlLmgJVGh1 IEFwciAxNSAyMTozNToxMiAxOTk5CisrKyBnZGItNi4zL3NpbS9wcGMvdHJlZS5oCVdlZCBBcHIg MjAgMTY6NDI6MDEgMjAwNQpAQCAtMzYsNyArMzYsNyBAQAogICAgVGhpcyBmdW5jdGlvbiBhY2Nl cHRzIGEgcHJpbnRmIHN0eWxlIGZvcm1hdHRlZCBzdHJpbmcgYXMgdGhlCiAgICBhcmd1bWVudCB0 aGF0IGRlc2NyaWJlcyB0aGUgZW50cnkuICBBbnkgcHJvcGVydGllcyBvciBpbnRlcnJ1cHQKICAg IGNvbm5lY3Rpb25zIGFkZGVkIHRvIGEgZGV2aWNlIHRyZWUgdXNpbmcgdGhpcyBmdW5jdGlvbiBh cmUgbWFya2VkCi0gICBhcyBoYXZpbmcgYSBwZXJtZW5hbnQgZGlzcG9zaXRpb24uICBXaGVuIHRo ZSB0cmVlIGlzIChyZSkKKyAgIGFzIGhhdmluZyBhIHBlcm1hbmFudCBkaXNwb3NpdGlvbi4gIFdo ZW4gdGhlIHRyZWUgaXMgKHJlKQogICAgaW5pdGlhbGl6ZWQgdGhleSB3aWxsIGJlIHJlc3RvcmVk IHRvIHRoZWlyIGluaXRpYWwgdmFsdWUuCiAKICAgICovCg==

Previous Message by Thread: click to view message preview

Re: gdb/1922: `gdb -p' fails on FreeBSD unless procfs is mounted

The following reply was made to PR gdb/1922; it has been noted by GNATS. From: Paul Gilliam <pgilliam@xxxxxxxxxx> To: gdb-prs@xxxxxxxxxxxxxxxxxx, das@xxxxxxxxxxx Cc: gdb-gnats@xxxxxxxxxxxxxxxxxx, marcel@xxxxxxxxxxx Subject: Re: gdb/1922: `gdb -p' fails on FreeBSD unless procfs is mounted Date: Tue, 19 Apr 2005 08:47:23 -0800 On Monday 18 April 2005 22:13, das@xxxxxxxxxxx wrote: > > >Number: 1922 > >Category: gdb > >Synopsis: `gdb -p' fails on FreeBSD unless procfs is mounted > >Confidential: no > >Severity: serious > >Priority: medium > >Responsible: unassigned > >State: open > >Class: patch > >Submitter-Id: net > >Arrival-Date: Tue Apr 19 05:18:00 UTC 2005 > >Closed-Date: > >Last-Modified: > >Originator: das@xxxxxxxxxxx > >Release: 6.1.1 > >Organization: > >Environment: > FreeBSD VARK.MIT.EDU 6.0-CURRENT FreeBSD 6.0-CURRENT #7: Sun Apr 17 20:58:41 > EDT 2005 > das@xxxxxxxxxxxx:/usr/scratch/vark/usr/home/t/freebsd/vark/src/sys/GENERIC > i386 > >Description: > Invoking `gdb -p' on FreeBSD without procfs mounted causes gdb to crash > because it can't find the process' executable file. Subsequently, the > target process is killed. There are really two problems here: > > (1) gdb should use a different mechanism to find the > text file on FreeBSD. > > (2) gdb should cleanly detach from the process when it > detects an internal error such as this so the > process isn't killed. This might not always be "The Right Thing". The user should be able to choose: clean detach to kill. > > The patch below solves problem (1). However, it uses a feature that is only > available in FreeBSD 6-CURRENT; gdb should fall back on procfs for older > versions of FreeBSD. (Note that on older versions of FreeBSD, the sysctl > will simply return an error.) Hopefully the patch will give someone with > copyright assignment paperwork on file the necessary ideas to implement the > complete solution (which requires fewer than 20 lines of code.) > > Note that it isn't acceptable to simply say ``use procfs'', since procfs is > disabled by default on FreeBSD due to its reputation for security problems. > I realize that there are other things in gdb that rely on procfs, but > failure to attach to processes is perhaps the most glaring problem. > > If someone can solve problem (2), that's great, although I'd be happy enough > if someone simply addressed (1). Thanks in advance! > >How-To-Repeat: > > gdb -p xxxx > solib-svr4.c:1307: internal-error: legacy_fetch_link_map_offsets called > without legacy link_map support enabled. > A problem internal to GDB has been detected, further debugging may prove > unreliable. > Quit this debugging session? (y or n) y > Create a core file of GDB? (y or n) n > [both gdb and process xxxx die] > >Fix: > Index: contrib/gdb/gdb/fbsd-proc.c > =================================================================== > RCS file: /cvs/src/contrib/gdb/gdb/fbsd-proc.c,v > retrieving revision 1.1.1.1 > diff -u -r1.1.1.1 fbsd-proc.c > --- contrib/gdb/gdb/fbsd-proc.c 20 Jun 2004 18:16:56 -0000 1.1.1.1 > +++ contrib/gdb/gdb/fbsd-proc.c 17 Apr 2005 01:40:58 -0000 > @@ -26,6 +26,7 @@ > > #include <sys/procfs.h> > #include <sys/types.h> > +#include <sys/sysctl.h> > > #include "elf-bfd.h" > > @@ -36,16 +37,20 @@ > { > char *path; > char *buf; > + int oid[4]; > + size_t buflen; > > - xasprintf (&path, "/proc/%d/file", pid); > buf = xcalloc (MAXPATHLEN, sizeof (char)); > - make_cleanup (xfree, path); > + buflen = MAXPATHLEN; > make_cleanup (xfree, buf); > - > - if (readlink (path, buf, MAXPATHLEN) > 0) > + oid[0] = CTL_KERN; > + oid[1] = KERN_PROC; > + oid[2] = KERN_PROC_PATHNAME; > + oid[3] = pid; > + if (sysctl(oid, 4, buf, &buflen, 0, 0) == 0) > return buf; > - > - return NULL; > + else > + return NULL; > } > > static int > >Release-Note: > >Audit-Trail: > >Unformatted: > >

Next Message by Thread: click to view message preview

Re: gdb/1922: `gdb -p' fails on FreeBSD unless procfs is mounted

The following reply was made to PR gdb/1922; it has been noted by GNATS. From: Mark Kettenis <mark.kettenis@xxxxxxxxx> To: das@xxxxxxxxxxx Cc: gdb-gnats@xxxxxxxxxxxxxxxxxx, marcel@xxxxxxxxxxx Subject: Re: gdb/1922: `gdb -p' fails on FreeBSD unless procfs is mounted Date: Tue, 26 Apr 2005 23:56:47 +0200 (CEST) Date: 19 Apr 2005 05:13:35 -0000 From: das@xxxxxxxxxxx Invoking `gdb -p' on FreeBSD without procfs mounted causes gdb to crash because it can't find the process' executable file. Subsequently, the target process is killed. There are really two problems here: [...] Note that it isn't acceptable to simply say ``use procfs'', since procfs is disabled by default on FreeBSD due to its reputation for security problems. I realize that there are other things in gdb that rely on procfs, but failure to attach to processes is perhaps the most glaring problem. Can's say "use procfs" to you folks while I'm actively working on eliminating it from OpenBSD can I? ;-). Anyway, I've checked a patch to avoid the internal-error. You'll find it attached to the bug report in gnats. I'm looking into your suggested alternative. Unfortunately 6.0-CURRENT-SNAP002 didn't include the new stuff yet. But I'll manage to get a completely current system anyway. Thanks for the report! Mark
Loading Comments...
Home | News | Patents | Sitemap | FAQ | advertise

Advertising by