|
|
Subject: Re: gdb/1922: `gdb -p' fails on FreeBSD unless procfs is mounted - msg#00043
List: gdb.bugs.discuss
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?
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
|
|