<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://sourceware.org/bugzilla/page.cgi?id=bugzilla.dtd">

<bugzilla version="4.4+"
          urlbase="http://sourceware.org/bugzilla/"
          
          maintainer="overseers@sourceware.org"
>

    <bug>
          <bug_id>10645</bug_id>
          
          <creation_ts>2009-09-16 17:59:00 +0000</creation_ts>
          <short_desc>Watchpoints on unreadable memory need no singlestepping</short_desc>
          <delta_ts>2011-07-31 19:08:32 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>gdb</product>
          <component>breakpoints</component>
          <version>6.8</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>6.8</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jan Kratochvil">jan.kratochvil</reporter>
          <assigned_to name="Not yet assigned to anyone">unassigned</assigned_to>
          <cc>gdb-prs</cc>
    
    <cc>jakub</cc>
    
    <cc>ppluzhnikov</cc>
    
    <cc>yuri</cc>
          <cf_gcchost>x86_64-unknown-linux-gnu</cf_gcchost>
          <cf_gcctarget>x86_64-unknown-linux-gnu</cf_gcctarget>
          <cf_gccbuild></cf_gccbuild>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>38298</commentid>
    <comment_count>0</comment_count>
    <who name="Jan Kratochvil">jan.kratochvil</who>
    <bug_when>2009-09-16 17:59:22 +0000</bug_when>
    <thetext>Currently GDB drops on unreadable watchpoint to PTRACE_SINGLESTEP.

It can use PTRACE_SYSCALL as any new memory area can appear at VMA only by a
syscall.
kernel feature:
Better would be to setup address-specific mmap() trap (by prctl()?) or if kernel
would trigger DR debug registers on their hit by mmap().

Similar problem is about disappearing memory when inferior already runs with
PTRACE_CONT.  Currently GDB would have to always PTRACE_SYSCALL if any hardware
watchpoint is active.
kernel feature:
That would be better trapped by kernel on munmap() possibly checking the x86 DR
debug registers at the kernel level.

Feature is useful with default &quot;set disable-randomization on&quot; to watch memory
objects since the beginning of debuggee re-run (sort of record-replay by hand).

One should check also the case of `int **p = NULL;&apos; with `watch **p&apos;.

------------------------------------------------------------------------------
static int i, *p;
int main (void) {
  i = 1;
  i = 2;
  p = (void *) main;
  return 0;
}
------------------------------------------------------------------------------
(gdb) start
3	  i = 1;
(gdb) set debug infrun 1
(gdb) watch *p
Watchpoint 2: *p
(gdb) c
Continuing.
infrun: clear_proceed_status_thread (process 30884)
infrun: proceed (addr=0xffffffffffffffff, signal=144, step=0)
infrun: resume (step=1, signal=0), trap_expected=0
                     ^ step should be 0
PTRACE_SYSCALL should be used here, not PTRACE_SINGLESTEP.
[...]
Watchpoint 2: *p
Old value = &lt;unreadable&gt;
New value = -443987883
main () at /tmp/hwwatch.c:6
6	  return 0;
------------------------------------------------------------------------------</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38299</commentid>
    <comment_count>1</comment_count>
      <attachid>4199</attachid>
    <who name="Jan Kratochvil">jan.kratochvil</who>
    <bug_when>2009-09-16 18:00:36 +0000</bug_when>
    <thetext>Created attachment 4199
Work in progress, not even a fix candidate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38457</commentid>
    <comment_count>2</comment_count>
      <attachid>4223</attachid>
    <who name="Jan Kratochvil">jan.kratochvil</who>
    <bug_when>2009-09-23 14:45:37 +0000</bug_when>
    <thetext>Created attachment 4223
A (failing now) testcase for possible kernel extensions.

Made for a possible inclusion to:
http://sourceware.org/systemtap/wiki/utrace/tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38458</commentid>
    <comment_count>3</comment_count>
      <attachid>4224</attachid>
    <who name="Jan Kratochvil">jan.kratochvil</who>
    <bug_when>2009-09-23 14:46:56 +0000</bug_when>
    <thetext>Created attachment 4224
Basic gdb/testsuite/ testcase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40130</commentid>
    <comment_count>4</comment_count>
      <attachid>4429</attachid>
    <who name="Dragos Tatulea">dragos.tatulea</who>
    <bug_when>2009-11-30 16:36:57 +0000</bug_when>
    <thetext>Created attachment 4429
Same patch as jank&apos;s, only adapted to the latest gdb tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40131</commentid>
    <comment_count>5</comment_count>
      <attachid>4430</attachid>
    <who name="Dragos Tatulea">dragos.tatulea</who>
    <bug_when>2009-11-30 16:37:39 +0000</bug_when>
    <thetext>Created attachment 4430
Added more test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40135</commentid>
    <comment_count>6</comment_count>
    <who name="Jan Kratochvil">jan.kratochvil</who>
    <bug_when>2009-11-30 17:29:05 +0000</bug_when>
    <thetext>(a) There should be a GNU ChangeLog.  There should be some description text to
include whensubmitting it.  mmap_watchpoints_triggered() has no comment, also
the IMO-tricky fetch_watchpoint_value() call change and the reasons for
`mem_cnt&apos; and `val&apos; checking.  `if (step == 2)&apos; or `else if (step == 1)&apos; are not
acceptable - currently `int step&apos; was a boolean, if it should be tri-state it
should become `enum&apos; (or a new parameter/flag should be provided); this also
affects step_string().  `struct inferior&apos;-&gt;trap_syscalls should be removed and
use the existing `catch syscall&apos; infrastructure (I do not know it much so one
should follow it more closely than these comments of mine).  Is the custom
PT_SYSCALL still needed with the existing `catch syscall&apos; infrastructure?

New parts I expected you could implement: (b) Catch also munmap()s.
(c) mmap_watchpoints_triggered() should trigger only on mmap-related syscalls as
detected by the existing `catch syscall&apos; infrastructure.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44199</commentid>
    <comment_count>7</comment_count>
    <who name="Dragos Tatulea">dragos.tatulea</who>
    <bug_when>2010-07-26 21:03:51 +0000</bug_when>
    <thetext>This patch: http://sourceware.org/ml/gdb-patches/2009-11/msg00429.html seems to 
change the behavior of watching an invalid area. Here&apos;s what happens now: 

GNU gdb (GDB) 7.0.50.20100131-cvs
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later &lt;http://gnu.org/licenses/gpl.html&gt;
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type &quot;show copying&quot;
and &quot;show warranty&quot; for details.
This GDB was configured as &quot;x86_64-unknown-linux-gnu&quot;.
For bug reporting instructions, please see:
&lt;http://www.gnu.org/software/gdb/bugs/&gt;...
Reading symbols from /media/a/gdb/bugzilla/10645/simple...done.
(gdb) start
Temporary breakpoint 1 at 0x400478: file simple.c, line 4.
Starting program: /media/a/gdb/bugzilla/10645/simple 

Temporary breakpoint 1, main () at simple.c:4
4         i = 1;
(gdb) set debug infrun 1
(gdb) watch *p
Hardware watchpoint 2: *p
(gdb) c
Continuing.
infrun: clear_proceed_status_thread (process 13517)
infrun: proceed (addr=0xffffffffffffffff, signal=144, step=0)
infrun: resume (step=0, signal=0), trap_expected=0
infrun: wait_for_inferior (treat_exec_as_sigtrap=0)
infrun: target_wait (-1, status) =
infrun:   13517 [process 13517],
infrun:   status-&gt;kind = stopped, signal = SIGTRAP
infrun: infwait_normal_state
infrun: TARGET_WAITKIND_STOPPED
infrun: stop_pc = 0x400498
infrun: stopped by watchpoint
infrun: stopped data address = 0x600840
infrun: BPSTAT_WHAT_STOP_NOISY
infrun: stop_stepping
Hardware watchpoint 2: *p

Old value = &lt;unreadable&gt;
New value = -443987883
main () at simple.c:7
7         return 0;

There&apos;s no single stepping anymore (at least for this particular case). Need to 
investigate why.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50079</commentid>
    <comment_count>8</comment_count>
    <who name="Paul Pluzhnikov">ppluzhnikov</who>
    <bug_when>2011-07-31 19:08:32 +0000</bug_when>
    <thetext>*** Bug 12956 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4199</attachid>
            <date>2009-09-16 18:00:00 +0000</date>
            <delta_ts>2009-09-16 18:00:36 +0000</delta_ts>
            <desc>Work in progress, not even a fix candidate.</desc>
            <filename>hwwatch.patch</filename>
            <type>text/plain</type>
            <size>9545</size>
            <attacher name="Jan Kratochvil">jan.kratochvil</attacher>
            
              <data encoding="base64">LS0tIGEvZ2RiL2JyZWFrcG9pbnQuYworKysgYi9nZGIvYnJlYWtwb2ludC5jCkBAIC0xMDI4LDcg
KzEwMjgsOSBAQCB1cGRhdGVfd2F0Y2hwb2ludCAoc3RydWN0IGJyZWFrcG9pbnQgKmIsIGludCBy
ZXBhcnNlKQogCQkgIGFkZHIgPSB2YWx1ZV9hZGRyZXNzICh2KTsKIAkJICBsZW4gPSBUWVBFX0xF
TkdUSCAodmFsdWVfdHlwZSAodikpOwogCQkgIHR5cGUgPSBod193cml0ZTsKLQkJICBpZiAoYi0+
dHlwZSA9PSBicF9yZWFkX3dhdGNocG9pbnQpCisJCSAgaWYgKHYgPT0gdmFsX2NoYWluICYmIHZh
bHVlX2xhenkgKHYpKQorCQkgICAgdHlwZSA9IGh3X21tYXA7CisJCSAgZWxzZSBpZiAoYi0+dHlw
ZSA9PSBicF9yZWFkX3dhdGNocG9pbnQpCiAJCSAgICB0eXBlID0gaHdfcmVhZDsKIAkJICBlbHNl
IGlmIChiLT50eXBlID09IGJwX2FjY2Vzc193YXRjaHBvaW50KQogCQkgICAgdHlwZSA9IGh3X2Fj
Y2VzczsKQEAgLTEyODcsOSArMTI4OSwxNyBAQCBOb3RlOiBhdXRvbWF0aWNhbGx5IHVzaW5nIGhh
cmR3YXJlIGJyZWFrcG9pbnRzIGZvciByZWFkLW9ubHkgYWRkcmVzc2VzLlxuIikpOwogCSAgICAg
IHdhdGNocG9pbnRzLiAgSXQncyBub3QgY2xlYXIgdGhhdCBpdCdzIG5lY2Vzc2FyeS4uLiAqLwog
CSAgICYmIGJwdC0+b3duZXItPmRpc3Bvc2l0aW9uICE9IGRpc3BfZGVsX2F0X25leHRfc3RvcCkK
ICAgICB7Ci0gICAgICB2YWwgPSB0YXJnZXRfaW5zZXJ0X3dhdGNocG9pbnQgKGJwdC0+YWRkcmVz
cywgCi0JCQkJICAgICAgYnB0LT5sZW5ndGgsCi0JCQkJICAgICAgYnB0LT53YXRjaHBvaW50X3R5
cGUpOworICAgICAgaWYgKGJwdC0+d2F0Y2hwb2ludF90eXBlID09IGh3X21tYXApCisgICAgICAJ
eworCSAgc3RydWN0IGluZmVyaW9yICppbmYgPSBjdXJyZW50X2luZmVyaW9yICgpOworCisJICBp
bmYtPnRyYXBfc3lzY2FsbHMgPSAxOworCSAgdmFsID0gMDsKKwl9CisgICAgICBlbHNlCisJdmFs
ID0gdGFyZ2V0X2luc2VydF93YXRjaHBvaW50IChicHQtPmFkZHJlc3MsIAorCQkJCQlicHQtPmxl
bmd0aCwKKwkJCQkJYnB0LT53YXRjaHBvaW50X3R5cGUpOwogICAgICAgYnB0LT5pbnNlcnRlZCA9
ICh2YWwgIT0gLTEpOwogICAgIH0KIApAQCAtMTc5Niw4ICsxODA2LDExIEBAIHJlbW92ZV9icmVh
a3BvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmIsIGluc2VydGlvbl9zdGF0ZV90IGlzKQogICAg
ICAgc3RydWN0IHZhbHVlICpuOwogCiAgICAgICBiLT5pbnNlcnRlZCA9IChpcyA9PSBtYXJrX2lu
c2VydGVkKTsKLSAgICAgIHZhbCA9IHRhcmdldF9yZW1vdmVfd2F0Y2hwb2ludCAoYi0+YWRkcmVz
cywgYi0+bGVuZ3RoLCAKLQkJCQkgICAgICBiLT53YXRjaHBvaW50X3R5cGUpOworICAgICAgaWYg
KGItPndhdGNocG9pbnRfdHlwZSA9PSBod19tbWFwKQorICAgICAgCXZhbCA9IDA7CisgICAgICBl
bHNlCisJdmFsID0gdGFyZ2V0X3JlbW92ZV93YXRjaHBvaW50IChiLT5hZGRyZXNzLCBiLT5sZW5n
dGgsIAorCQkJCQliLT53YXRjaHBvaW50X3R5cGUpOwogCiAgICAgICAvKiBGYWlsdXJlIHRvIHJl
bW92ZSBhbnkgb2YgdGhlIGhhcmR3YXJlIHdhdGNocG9pbnRzIGNvbWVzIGhlcmUuICAqLwogICAg
ICAgaWYgKChpcyA9PSBtYXJrX3VuaW5zZXJ0ZWQpICYmIChiLT5pbnNlcnRlZCkpCkBAIC0yNzgz
LDYgKzI3OTYsMjUgQEAgd2F0Y2hwb2ludHNfdHJpZ2dlcmVkIChzdHJ1Y3QgdGFyZ2V0X3dhaXRz
dGF0dXMgKndzKQogICByZXR1cm4gMTsKIH0KIAordm9pZAorbW1hcF93YXRjaHBvaW50c190cmln
Z2VyZWQgKHZvaWQpCit7CisgIHN0cnVjdCBicmVha3BvaW50ICpiOworCisgIEFMTF9CUkVBS1BP
SU5UUyAoYikKKyAgICBpZiAoYi0+dHlwZSA9PSBicF9oYXJkd2FyZV93YXRjaHBvaW50KQorICAg
ICAgeworCXN0cnVjdCBicF9sb2NhdGlvbiAqbG9jOworCisJZm9yIChsb2MgPSBiLT5sb2M7IGxv
YzsgbG9jID0gbG9jLT5uZXh0KQorCSAgaWYgKGxvYy0+d2F0Y2hwb2ludF90eXBlID09IGh3X21t
YXApCisJICAgIHsKKwkgICAgICBiLT53YXRjaHBvaW50X3RyaWdnZXJlZCA9IHdhdGNoX3RyaWdn
ZXJlZF95ZXM7CisJICAgICAgYnJlYWs7CisJICAgIH0KKyAgICAgIH0KK30KKwogLyogUG9zc2li
bGUgcmV0dXJuIHZhbHVlcyBmb3Igd2F0Y2hwb2ludF9jaGVjayAodGhpcyBjYW4ndCBiZSBhbiBl
bnVtCiAgICBiZWNhdXNlIG9mIGNoZWNrX2Vycm9ycykuICAqLwogLyogVGhlIHdhdGNocG9pbnQg
aGFzIGJlZW4gZGVsZXRlZC4gICovCkBAIC02MzMzLDcgKzYzNjUsNyBAQCB3YXRjaF9jb21tYW5k
XzEgKGNoYXIgKmFyZywgaW50IGFjY2Vzc2ZsYWcsIGludCBmcm9tX3R0eSkKICAgc3RydWN0IHN5
bXRhYl9hbmRfbGluZSBzYWw7CiAgIHN0cnVjdCBleHByZXNzaW9uICpleHA7CiAgIHN0cnVjdCBi
bG9jayAqZXhwX3ZhbGlkX2Jsb2NrOwotICBzdHJ1Y3QgdmFsdWUgKnZhbCwgKm1hcms7CisgIHN0
cnVjdCB2YWx1ZSAqdmFsLCAqbWFyaywgKnJlc3VsdDsKICAgc3RydWN0IGZyYW1lX2luZm8gKmZy
YW1lOwogICBjaGFyICpleHBfc3RhcnQgPSBOVUxMOwogICBjaGFyICpleHBfZW5kID0gTlVMTDsK
QEAgLTY0MjMsNyArNjQ1NSw3IEBAIHdhdGNoX2NvbW1hbmRfMSAoY2hhciAqYXJnLCBpbnQgYWNj
ZXNzZmxhZywgaW50IGZyb21fdHR5KQogCiAgIGV4cF92YWxpZF9ibG9jayA9IGlubmVybW9zdF9i
bG9jazsKICAgbWFyayA9IHZhbHVlX21hcmsgKCk7Ci0gIGZldGNoX3dhdGNocG9pbnRfdmFsdWUg
KGV4cCwgJnZhbCwgTlVMTCwgTlVMTCk7CisgIGZldGNoX3dhdGNocG9pbnRfdmFsdWUgKGV4cCwg
JnZhbCwgJnJlc3VsdCwgTlVMTCk7CiAgIGlmICh2YWwgIT0gTlVMTCkKICAgICByZWxlYXNlX3Zh
bHVlICh2YWwpOwogCkBAIC02NDU1LDcgKzY0ODcsNyBAQCB3YXRjaF9jb21tYW5kXzEgKGNoYXIg
KmFyZywgaW50IGFjY2Vzc2ZsYWcsIGludCBmcm9tX3R0eSkKICAgbWVtX2NudCA9IGNhbl91c2Vf
aGFyZHdhcmVfd2F0Y2hwb2ludCAodmFsKTsKICAgaWYgKG1lbV9jbnQgPT0gMCAmJiBicF90eXBl
ICE9IGJwX2hhcmR3YXJlX3dhdGNocG9pbnQpCiAgICAgZXJyb3IgKF8oIkV4cHJlc3Npb24gY2Fu
bm90IGJlIGltcGxlbWVudGVkIHdpdGggcmVhZC9hY2Nlc3Mgd2F0Y2hwb2ludC4iKSk7Ci0gIGlm
IChtZW1fY250ICE9IDApCisgIGlmIChtZW1fY250ICE9IDAgfHwgIXZhbCkKICAgICB7CiAgICAg
ICBpID0gaHdfd2F0Y2hwb2ludF91c2VkX2NvdW50IChicF90eXBlLCAmb3RoZXJfdHlwZV91c2Vk
KTsKICAgICAgIHRhcmdldF9yZXNvdXJjZXNfb2sgPSAKQEAgLTY0NzAsNyArNjUwMiw3IEBAIHdh
dGNoX2NvbW1hbmRfMSAoY2hhciAqYXJnLCBpbnQgYWNjZXNzZmxhZywgaW50IGZyb21fdHR5KQog
CiAgIC8qIENoYW5nZSB0aGUgdHlwZSBvZiBicmVha3BvaW50IHRvIGFuIG9yZGluYXJ5IHdhdGNo
cG9pbnQgaWYgYSBoYXJkd2FyZQogICAgICB3YXRjaHBvaW50IGNvdWxkIG5vdCBiZSBzZXQuICAq
LwotICBpZiAoIW1lbV9jbnQgfHwgdGFyZ2V0X3Jlc291cmNlc19vayA8PSAwKQorICBpZiAoKCFt
ZW1fY250ICYmIHZhbCkgfHwgdGFyZ2V0X3Jlc291cmNlc19vayA8PSAwKQogICAgIGJwX3R5cGUg
PSBicF93YXRjaHBvaW50OwogCiAgIGZyYW1lID0gYmxvY2tfaW5uZXJtb3N0X2ZyYW1lIChleHBf
dmFsaWRfYmxvY2spOwotLS0gYS9nZGIvYnJlYWtwb2ludC5oCisrKyBiL2dkYi9icmVha3BvaW50
LmgKQEAgLTE2Nyw3ICsxNjcsOCBAQCBlbnVtIHRhcmdldF9od19icF90eXBlCiAgICAgaHdfd3Jp
dGUgICA9IDAsIAkJLyogQ29tbW9uICBIVyB3YXRjaHBvaW50ICovCiAgICAgaHdfcmVhZCAgICA9
IDEsIAkJLyogUmVhZCAgICBIVyB3YXRjaHBvaW50ICovCiAgICAgaHdfYWNjZXNzICA9IDIsIAkJ
LyogQWNjZXNzICBIVyB3YXRjaHBvaW50ICovCi0gICAgaHdfZXhlY3V0ZSA9IDMJCS8qIEV4ZWN1
dGUgSFcgYnJlYWtwb2ludCAqLworICAgIGh3X2V4ZWN1dGUgPSAzLAkJLyogRXhlY3V0ZSBIVyBi
cmVha3BvaW50ICovCisgICAgaHdfbW1hcCAgICA9IDQJCS8qIE1lbW9yeSBhcmVhIGdldHMgbW1h
cCgyKWVkLiAgKi8KICAgfTsKIAogCkBAIC05MTIsNiArOTEzLDggQEAgZXh0ZXJuIGludCBkZXBy
ZWNhdGVkX3JlbW92ZV9yYXdfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKiwgdm9pZCAqKTsK
ICAgIHRhcmdldC4gICovCiBpbnQgd2F0Y2hwb2ludHNfdHJpZ2dlcmVkIChzdHJ1Y3QgdGFyZ2V0
X3dhaXRzdGF0dXMgKik7CiAKK2V4dGVybiB2b2lkIG1tYXBfd2F0Y2hwb2ludHNfdHJpZ2dlcmVk
ICh2b2lkKTsKKwogLyogVXBkYXRlIEJVRiwgd2hpY2ggaXMgTEVOIGJ5dGVzIHJlYWQgZnJvbSB0
aGUgdGFyZ2V0IGFkZHJlc3MgTUVNQUREUiwKICAgIGJ5IHJlcGxhY2luZyBhbnkgbWVtb3J5IGJy
ZWFrcG9pbnRzIHdpdGggdGhlaXIgc2hhZG93ZWQgY29udGVudHMuICAqLwogdm9pZCBicmVha3Bv
aW50X3Jlc3RvcmVfc2hhZG93cyAoZ2RiX2J5dGUgKmJ1ZiwgVUxPTkdFU1QgbWVtYWRkciwgCi0t
LSBhL2dkYi9nZGJfcHRyYWNlLmgKKysrIGIvZ2RiL2dkYl9wdHJhY2UuaApAQCAtOTIsNiArOTIs
MTEgQEAKICMgZW5kaWYKICNlbmRpZgogCisjaWZuZGVmIFBUX1NZU0NBTEwKKyMgZGVmaW5lIFBU
X1NZU0NBTEwJMjQJLyogQ29udGludWUgYW5kIHN0b3AgYXQgdGhlIG5leHQgKHJldHVybiBmcm9t
KQorCQkJCSAgIHN5c2NhbGwuICAqLworI2VuZGlmCisKIC8qIE5vdCBhbGwgc3lzdGVtcyBzdXBw
b3J0IGF0dGFjaGluZyBhbmQgZGV0YWNoaW5nLiAgICovCiAKICNpZm5kZWYgUFRfQVRUQUNICi0t
LSBhL2dkYi9pbmYtcHRyYWNlLmMKKysrIGIvZ2RiL2luZi1wdHJhY2UuYwpAQCAtMzM5LDcgKzMz
OSw5IEBAIGluZl9wdHJhY2VfcmVzdW1lIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzLAogICAgICAg
IHNpbmdsZS10aHJlYWRlZCBwcm9jZXNzZXMsIHNvIHNpbXBseSByZXN1bWUgdGhlIGluZmVyaW9y
LiAgKi8KICAgICBwaWQgPSBwdGlkX2dldF9waWQgKGluZmVyaW9yX3B0aWQpOwogCi0gIGlmIChz
dGVwKQorICBpZiAoc3RlcCA9PSAyKQorICAgIHJlcXVlc3QgPSBQVF9TWVNDQUxMOworICBlbHNl
IGlmIChzdGVwKQogICAgIHsKICAgICAgIC8qIElmIHRoaXMgc3lzdGVtIGRvZXMgbm90IHN1cHBv
cnQgUFRfU1RFUCwgYSBoaWdoZXIgbGV2ZWwKICAgICAgICAgIGZ1bmN0aW9uIHdpbGwgaGF2ZSBj
YWxsZWQgc2luZ2xlX3N0ZXAoKSB0byB0cmFuc211dGUgdGhlIHN0ZXAKLS0tIGEvZ2RiL2luZmVy
aW9yLmgKKysrIGIvZ2RiL2luZmVyaW9yLmgKQEAgLTQyNSw2ICs0MjUsOCBAQCBzdHJ1Y3QgaW5m
ZXJpb3IKIAogICAvKiBQcml2YXRlIGRhdGEgdXNlZCBieSB0aGUgdGFyZ2V0IHZlY3RvciBpbXBs
ZW1lbnRhdGlvbi4gICovCiAgIHN0cnVjdCBwcml2YXRlX2luZmVyaW9yICpwcml2YXRlOworCisg
IHVuc2lnbmVkIHRyYXBfc3lzY2FsbHMgOiAxOwogfTsKIAogLyogQ3JlYXRlIGFuIGVtcHR5IGlu
ZmVyaW9yIGxpc3QsIG9yIGVtcHR5IHRoZSBleGlzdGluZyBvbmUuICAqLwotLS0gYS9nZGIvaW5m
cnVuLmMKKysrIGIvZ2RiL2luZnJ1bi5jCkBAIC0xMjExLDcgKzEyMTEsNyBAQCBhIGNvbW1hbmQg
bGlrZSBgcmV0dXJuJyBvciBganVtcCcgdG8gY29udGludWUgZXhlY3V0aW9uLiIpKTsKICAgICB9
CiAKICAgLyogRG8gd2UgbmVlZCB0byBkbyBpdCB0aGUgaGFyZCB3YXksIHcvdGVtcCBicmVha3Bv
aW50cz8gICovCi0gIGlmIChzdGVwKQorICBpZiAoc3RlcCA9PSAxKQogICAgIHN0ZXAgPSBtYXli
ZV9zb2Z0d2FyZV9zaW5nbGVzdGVwIChnZGJhcmNoLCBwYyk7CiAKICAgaWYgKHNob3VsZF9yZXN1
bWUpCkBAIC0xMzgwLDYgKzEzODAsNyBAQCBjbGVhcl9wcm9jZWVkX3N0YXR1cyAodm9pZCkKICAg
CiAgICAgICBpbmZlcmlvciA9IGN1cnJlbnRfaW5mZXJpb3IgKCk7CiAgICAgICBpbmZlcmlvci0+
c3RvcF9zb29uID0gTk9fU1RPUF9RVUlFVExZOworICAgICAgaW5mZXJpb3ItPnRyYXBfc3lzY2Fs
bHMgPSAwOwogICAgIH0KIAogICBzdG9wX2FmdGVyX3RyYXAgPSAwOwpAQCAtMTQ3OCw2ICsxNDc5
LDcgQEAgcHJvY2VlZCAoQ09SRV9BRERSIGFkZHIsIGVudW0gdGFyZ2V0X3NpZ25hbCBzaWdnbmFs
LCBpbnQgc3RlcCkKICAgc3RydWN0IHRocmVhZF9pbmZvICp0cDsKICAgQ09SRV9BRERSIHBjOwog
ICBpbnQgb25lcHJvYyA9IDA7CisgIHN0cnVjdCBpbmZlcmlvciAqaW5mOwogCiAgIC8qIElmIHdl
J3JlIHN0b3BwZWQgYXQgYSBmb3JrL3Zmb3JrLCBmb2xsb3cgdGhlIGJyYW5jaCBzZXQgYnkgdGhl
CiAgICAgICJzZXQgZm9sbG93LWZvcmstbW9kZSIgY29tbWFuZDsgb3RoZXJ3aXNlLCB3ZSdsbCBq
dXN0IHByb2NlZWQKQEAgLTE2NDAsOCArMTY0MiwxMCBAQCBwcm9jZWVkIChDT1JFX0FERFIgYWRk
ciwgZW51bSB0YXJnZXRfc2lnbmFsIHNpZ2duYWwsIGludCBzdGVwKQogICAvKiBSZXNldCB0byBu
b3JtYWwgc3RhdGUuICAqLwogICBpbml0X2luZndhaXRfc3RhdGUgKCk7CiAKKyAgaW5mID0gY3Vy
cmVudF9pbmZlcmlvciAoKTsKKwogICAvKiBSZXN1bWUgaW5mZXJpb3IuICAqLwotICByZXN1bWUg
KG9uZXByb2MgfHwgc3RlcCB8fCBicHN0YXRfc2hvdWxkX3N0ZXAgKCksIHRwLT5zdG9wX3NpZ25h
bCk7CisgIHJlc3VtZSAob25lcHJvYyB8fCBzdGVwIHx8IGJwc3RhdF9zaG91bGRfc3RlcCAoKSA/
IDEgOiAoaW5mLT50cmFwX3N5c2NhbGxzID8gMiA6IDApLCB0cC0+c3RvcF9zaWduYWwpOwogCiAg
IC8qIFdhaXQgZm9yIGl0IHRvIHN0b3AgKGlmIG5vdCBzdGFuZGFsb25lKQogICAgICBhbmQgaW4g
YW55IGNhc2UgZGVjb2RlIHdoeSBpdCBzdG9wcGVkLCBhbmQgYWN0IGFjY29yZGluZ2x5LiAgKi8K
QEAgLTMwNTIsNiArMzA1NiwxNSBAQCB0YXJnZXRzIHNob3VsZCBhZGQgbmV3IHRocmVhZHMgdG8g
dGhlIHRocmVhZCBsaXN0IHRoZW1zZWx2ZXMgaW4gbm9uLXN0b3AgbW9kZS4iKQogICBlbHNlCiAg
ICAgc3RvcHBlZF9ieV93YXRjaHBvaW50ID0gd2F0Y2hwb2ludHNfdHJpZ2dlcmVkICgmZWNzLT53
cyk7CiAKKyAgaWYgKGVjcy0+d3Mua2luZCA9PSBUQVJHRVRfV0FJVEtJTkRfU1RPUFBFRAorICAg
ICAgJiYgZWNzLT53cy52YWx1ZS5zaWcgPT0gVEFSR0VUX1NJR05BTF9UUkFQKQorICAgIHsKKyAg
ICAgIHN0cnVjdCBpbmZlcmlvciAqaW5mZXJpb3IgPSBjdXJyZW50X2luZmVyaW9yICgpOworCisg
ICAgICBpZiAoaW5mZXJpb3ItPnRyYXBfc3lzY2FsbHMpCisJbW1hcF93YXRjaHBvaW50c190cmln
Z2VyZWQgKCk7CisgICAgfQorCiAgIC8qIElmIG5lY2Vzc2FyeSwgc3RlcCBvdmVyIHRoaXMgd2F0
Y2hwb2ludC4gIFdlJ2xsIGJlIGJhY2sgdG8gZGlzcGxheQogICAgICBpdCBpbiBhIG1vbWVudC4g
ICovCiAgIGlmIChzdG9wcGVkX2J5X3dhdGNocG9pbnQKLS0tIGEvZ2RiL2xpbnV4LW5hdC5jCisr
KyBiL2dkYi9saW51eC1uYXQuYwpAQCAtMTY1NCw2ICsxNjU0LDIyIEBAIHJlc3VtZV9zZXRfY2Fs
bGJhY2sgKHN0cnVjdCBsd3BfaW5mbyAqbHAsIHZvaWQgKmRhdGEpCiAgIHJldHVybiAwOwogfQog
CitzdGF0aWMgY29uc3QgY2hhciAqCitzdGVwX3N0cmluZyAoaW50IHN0ZXApCit7CisgIHN3aXRj
aCAoc3RlcCkKKyAgeworICAgIGNhc2UgMDoKKyAgICAgIHJldHVybiAiUFRSQUNFX0NPTlQiOwor
ICAgIGNhc2UgMToKKyAgICAgIHJldHVybiAiUFRSQUNFX1NJTkdMRVNURVAiOworICAgIGNhc2Ug
MjoKKyAgICAgIHJldHVybiAiUFRSQUNFX1NZU0NBTEwiOworICAgIGRlZmF1bHQ6CisgICAgICBn
ZGJfYXNzZXJ0ICgwKTsKKyAgfQorfQorCiBzdGF0aWMgdm9pZAogbGludXhfbmF0X3Jlc3VtZSAo
c3RydWN0IHRhcmdldF9vcHMgKm9wcywKIAkJICBwdGlkX3QgcHRpZCwgaW50IHN0ZXAsIGVudW0g
dGFyZ2V0X3NpZ25hbCBzaWdubykKQEAgLTE3NzAsNyArMTc4Niw3IEBAIGxpbnV4X25hdF9yZXN1
bWUgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMsCiAgIGlmIChkZWJ1Z19saW51eF9uYXQpCiAgICAg
ZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAogCQkJIkxMUjogJXMgJXMsICVzIChyZXN1
bWUgZXZlbnQgdGhyZWFkKVxuIiwKLQkJCXN0ZXAgPyAiUFRSQUNFX1NJTkdMRVNURVAiIDogIlBU
UkFDRV9DT05UIiwKKwkJCXN0ZXBfc3RyaW5nIChzdGVwKSwKIAkJCXRhcmdldF9waWRfdG9fc3Ry
IChwdGlkKSwKIAkJCXNpZ25vID8gc3Ryc2lnbmFsIChzaWdubykgOiAiMCIpOwogCkBAIC0yNjcy
LDggKzI2ODgsNyBAQCBsaW51eF9uYXRfZmlsdGVyX2V2ZW50IChpbnQgbHdwaWQsIGludCBzdGF0
dXMsIGludCBvcHRpb25zKQogICAgICAgaWYgKGRlYnVnX2xpbnV4X25hdCkKIAlmcHJpbnRmX3Vu
ZmlsdGVyZWQgKGdkYl9zdGRsb2csCiAJCQkgICAgIkxMVzogJXMgJXMsIDAsIDAgKGRpc2NhcmQg
U0lHU1RPUClcbiIsCi0JCQkgICAgbHAtPnN0ZXAgPwotCQkJICAgICJQVFJBQ0VfU0lOR0xFU1RF
UCIgOiAiUFRSQUNFX0NPTlQiLAorCQkJICAgIHN0ZXBfc3RyaW5nIChscC0+c3RlcCksCiAJCQkg
ICAgdGFyZ2V0X3BpZF90b19zdHIgKGxwLT5wdGlkKSk7CiAKICAgICAgIGxwLT5zdG9wcGVkID0g
MDsKQEAgLTI3MDIsOCArMjcxNyw3IEBAIGxpbnV4X25hdF9maWx0ZXJfZXZlbnQgKGludCBsd3Bp
ZCwgaW50IHN0YXR1cywgaW50IG9wdGlvbnMpCiAgICAgICBpZiAoZGVidWdfbGludXhfbmF0KQog
CWZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKIAkJCSAgICAiTExXOiAlcyAlcywgMCwg
MCAoZGlzY2FyZCBTSUdJTlQpXG4iLAotCQkJICAgIGxwLT5zdGVwID8KLQkJCSAgICAiUFRSQUNF
X1NJTkdMRVNURVAiIDogIlBUUkFDRV9DT05UIiwKKwkJCSAgICBzdGVwX3N0cmluZyAobHAtPnN0
ZXApLAogCQkJICAgIHRhcmdldF9waWRfdG9fc3RyIChscC0+cHRpZCkpOwogCiAgICAgICBscC0+
c3RvcHBlZCA9IDA7CkBAIC0yODQxLDcgKzI4NTUsNyBAQCByZXRyeToKICAgICAgIGlmIChkZWJ1
Z19saW51eF9uYXQpCiAJZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAogCQkJICAgICJM
TFc6ICVzICVzLCAwLCAwIChleHBlY3QgU0lHU1RPUClcbiIsCi0JCQkgICAgbHAtPnN0ZXAgPyAi
UFRSQUNFX1NJTkdMRVNURVAiIDogIlBUUkFDRV9DT05UIiwKKwkJCSAgICBzdGVwX3N0cmluZyAo
bHAtPnN0ZXApLAogCQkJICAgIHRhcmdldF9waWRfdG9fc3RyIChscC0+cHRpZCkpOwogICAgICAg
bHAtPnN0b3BwZWQgPSAwOwogICAgICAgZ2RiX2Fzc2VydCAobHAtPnJlc3VtZWQpOwpAQCAtMzAy
NCw4ICszMDM4LDcgQEAgcmV0cnk6CiAJICBpZiAoZGVidWdfbGludXhfbmF0KQogCSAgICBmcHJp
bnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCiAJCQkJIkxMVzogJXMgJXMsICVzIChwcmVlbXB0
ICdoYW5kbGUnKVxuIiwKLQkJCQlscC0+c3RlcCA/Ci0JCQkJIlBUUkFDRV9TSU5HTEVTVEVQIiA6
ICJQVFJBQ0VfQ09OVCIsCisJCQkJc3RlcF9zdHJpbmcgKGxwLT5zdGVwKSwKIAkJCQl0YXJnZXRf
cGlkX3RvX3N0ciAobHAtPnB0aWQpLAogCQkJCXNpZ25vID8gc3Ryc2lnbmFsIChzaWdubykgOiAi
MCIpOwogCSAgbHAtPnN0b3BwZWQgPSAwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>4223</attachid>
            <date>2009-09-23 14:45:00 +0000</date>
            <delta_ts>2009-09-23 14:45:37 +0000</delta_ts>
            <desc>A (failing now) testcase for possible kernel extensions.</desc>
            <filename>watchpoint-mmap.c</filename>
            <type>text/plain</type>
            <size>6336</size>
            <attacher name="Jan Kratochvil">jan.kratochvil</attacher>
            
              <data encoding="base64">LyogVGVzdCBjYXNlIGZvciBzZXR0aW5nIGEgbWVtb3J5LXdyaXRlIHdhdGNocG9pbnQuCgogICBU
aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcy1pcycsIHdpdGhvdXQgYW55IGV4cHJlc3Mgb3Ig
aW1wbGllZAogICB3YXJyYW50eS4gIEluIG5vIGV2ZW50IHdpbGwgdGhlIGF1dGhvcnMgYmUgaGVs
ZCBsaWFibGUgZm9yIGFueSBkYW1hZ2VzCiAgIGFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMg
c29mdHdhcmUuCgogICBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gYW55b25lIHRvIHVzZSB0aGlz
IHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZSwKICAgaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGlj
YXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kIHJlZGlzdHJpYnV0ZSBpdAogICBmcmVlbHkuICAq
LwoKLyogSXQgbWF5IHNvbWV0aW1lcyBmYWlsIChiZXR3ZWVuIDElIGFuZCAxMDAlIG9mIGNhc2Vz
IGZvciBtZSkgZXZlbiBvbiBhIGtlcm5lbAogICBnZW5lcmFsbHkgd29ya2luZywgZXhwZWN0aW5n
IHRoZSBzYW1lIGJ1ZyBhZmZlY3RpbmcgYHBwYy1kYWJyLXJhY2UnIGV2ZW4KICAgd2hpbGUgdGhp
cyB0ZXN0Y2FzZSBkb2VzIG5vdCB1c2UgdGhyZWFkcy4KICAgCiAgIFRlc3RjYXNlIHJldHVybnMg
cmMgMiBvbiBhIG1pc3NlZCAodGhlcmVmb3JlIHVuc3VwcG9ydGVkKSB3YXRjaHBvaW50LiAgKi8K
CiNkZWZpbmUgX0dOVV9TT1VSQ0UgMQojaWZkZWYgX19pYTY0X18KI2RlZmluZSBpYTY0X2ZwcmVn
IGlhNjRfZnByZWdfRElTQUJMRQojZGVmaW5lIHB0X2FsbF91c2VyX3JlZ3MgcHRfYWxsX3VzZXJf
cmVnc19ESVNBQkxFCiNlbmRpZgkvKiBfX2lhNjRfXyAqLwojaW5jbHVkZSA8c3lzL3B0cmFjZS5o
PgojaWZkZWYgX19pYTY0X18KI3VuZGVmIGlhNjRfZnByZWcKI3VuZGVmIHB0X2FsbF91c2VyX3Jl
Z3MKI2VuZGlmCS8qIF9faWE2NF9fICovCiNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KI2luY2x1
ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVkZSA8c3lzL3VzZXIuaD4KI2lmIGRlZmluZWQgX19pMzg2
X18gfHwgZGVmaW5lZCBfX3g4Nl82NF9fCiNpbmNsdWRlIDxzeXMvZGVidWdyZWcuaD4KI2VuZGlm
CgojaW5jbHVkZSA8YXNzZXJ0Lmg+CiNpbmNsdWRlIDx1bmlzdGQuaD4KI2luY2x1ZGUgPHN5cy93
YWl0Lmg+CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxz
dGRkZWYuaD4KI2luY2x1ZGUgPGVycm5vLmg+CiNpbmNsdWRlIDxzeXMvbW1hbi5oPgoKI2lmZGVm
IF9fcG93ZXJwY19fCgojZGVmaW5lCVNFVF9XQVRDSFBPSU5UIHNldF93YXRjaHBvaW50CgojaWZu
ZGVmIFBUUkFDRV9HRVRfREVCVUdSRUcKIyBkZWZpbmUgUFRSQUNFX0dFVF9ERUJVR1JFRwkyNQoj
ZW5kaWYKI2lmbmRlZiBQVFJBQ0VfU0VUX0RFQlVHUkVHCiMgZGVmaW5lIFBUUkFDRV9TRVRfREVC
VUdSRUcJMjYKI2VuZGlmCgpzdGF0aWMgdm9pZApzZXRfd2F0Y2hwb2ludCAocGlkX3QgcGlkLCB2
b2xhdGlsZSB2b2lkICphZGRyKQp7CiAgbG9uZyBkYWJyOwogIGxvbmcgbDsKCiAgZXJybm8gPSAw
OwogIGwgPSBwdHJhY2UgKFBUUkFDRV9HRVRfREVCVUdSRUcsIHBpZCwgMGwsICZkYWJyKTsKICBp
ZiAobCA9PSAtMWwpCiAgICB7CiAgICAgIGFzc2VydCAoZXJybm8gPT0gRUlPKTsgLyogTWlzc2lu
ZyBrZXJuZWwvaHcgc3VwcG9ydCBzaG91bGQgZ2V0IHRoaXMuICAqLwogICAgICBleGl0ICg3Nyk7
CiAgICB9CiAgZWxzZQogICAgewogICAgICBhc3NlcnRfcGVycm9yIChlcnJubyk7CiAgICAgIGFz
c2VydCAobCA9PSAwKTsKICAgICAgYXNzZXJ0IChkYWJyID09IDApOwogICAgfQoKICBkYWJyID0g
KHVuc2lnbmVkIGxvbmcpIGFkZHI7CiAgZGFiciB8PSA3OwogIGwgPSBwdHJhY2UgKFBUUkFDRV9T
RVRfREVCVUdSRUcsIHBpZCwgMGwsIGRhYnIpOwogIGFzc2VydF9wZXJyb3IgKGVycm5vKTsKICBh
c3NlcnQgKGwgPT0gMCk7Cn0KCiNlbGlmIGRlZmluZWQgX194ODZfNjRfXyB8fCBkZWZpbmVkIF9f
aTM4Nl9fCgojZGVmaW5lCVNFVF9XQVRDSFBPSU5UIHNldF93YXRjaHBvaW50CgpzdGF0aWMgdm9p
ZApzZXRfd2F0Y2hwb2ludCAocGlkX3QgcGlkLCB2b2xhdGlsZSB2b2lkICphZGRyKQp7CiAgdW5z
aWduZWQgbG9uZyBkcjc7CiAgbG9uZyBsOwoKICBlcnJubyA9IDA7CiAgbCA9IHB0cmFjZSAoUFRS
QUNFX1BPS0VVU0VSLCBwaWQsCgkgICAgICBvZmZzZXRvZiAoc3RydWN0IHVzZXIsIHVfZGVidWdy
ZWdbMF0pLCAodW5zaWduZWQgbG9uZykgYWRkcik7CiAgYXNzZXJ0X3BlcnJvciAoZXJybm8pOwog
IGFzc2VydCAobCA9PSAwKTsKCiAgZHI3ID0gKERSX1JXX1dSSVRFIDw8IERSX0NPTlRST0xfU0hJ
RlQpOwoKI2lmZGVmIERSX0xFTl84CiAgLyoKICAgKiBGb3IgYSAzMi1iaXQgYnVpbGQsIERSX0xF
Tl84IG1pZ2h0IGJlIGRlZmluZWQgYnkgdGhlIGhlYWRlci4KICAgKiBPbiBhIDY0LWJpdCBrZXJu
ZWwsIHdlIG1pZ2h0IGV2ZW4gYmUgYWJsZSB0byB1c2UgaXQuCiAgICogQnV0IHdlIGNhbid0IHRl
bGwsIGFuZCB3ZSBkb24ndCByZWFsbHkgbmVlZCBpdCwgc28ganVzdCB1c2UgRFJfTEVOXzQuCiAg
ICovCiAgaWYgKHNpemVvZiAobG9uZykgPiA0KQogICAgZHI3IHw9IChEUl9MRU5fOCA8PCBEUl9D
T05UUk9MX1NISUZUKTsKICBlbHNlCiNlbmRpZgogICAgZHI3IHw9IChEUl9MRU5fNCA8PCBEUl9D
T05UUk9MX1NISUZUKTsKICBkcjcgfD0gKDFVTCA8PCBEUl9MT0NBTF9FTkFCTEVfU0hJRlQpOwog
IGRyNyB8PSAoMVVMIDw8IERSX0dMT0JBTF9FTkFCTEVfU0hJRlQpOwoKICBsID0gcHRyYWNlIChQ
VFJBQ0VfUE9LRVVTRVIsIHBpZCwgb2Zmc2V0b2YgKHN0cnVjdCB1c2VyLCB1X2RlYnVncmVnWzdd
KSwgZHI3KTsKICBhc3NlcnRfcGVycm9yIChlcnJubyk7CiAgYXNzZXJ0IChsID09IDApOwp9Cgoj
ZW5kaWYKCiNpZm5kZWYgU0VUX1dBVENIUE9JTlQKCmludAptYWluICh2b2lkKQp7CiAgcmV0dXJu
IDc3Owp9CgojZWxzZQoKc3RhdGljIHBpZF90IGNoaWxkOwoKc3RhdGljIHZvaWQKY2xlYW51cCAo
dm9pZCkKewogIGlmIChjaGlsZCA+IDApCiAgICBraWxsIChjaGlsZCwgU0lHS0lMTCk7CiAgY2hp
bGQgPSAwOwp9CgpzdGF0aWMgdm9pZApoYW5kbGVyX2ZhaWwgKGludCBzaWdubykKewogIGNsZWFu
dXAgKCk7CiAgc2lnbmFsIChzaWdubywgU0lHX0RGTCk7CiAgcmFpc2UgKHNpZ25vKTsKfQoKc3Rh
dGljIHZvaWQKZXhwZWN0X3RyYXBfYW5kX3NpZ25hbCAoaW50IGV4cGVjdCkKewogIGxvbmcgbDsK
ICBwaWRfdCBnb3RfcGlkOwogIGludCBzdGF0dXM7CgogIGVycm5vID0gMDsKICBsID0gcHRyYWNl
IChQVFJBQ0VfQ09OVCwgY2hpbGQsIDBsLCAwbCk7CiAgYXNzZXJ0X3BlcnJvciAoZXJybm8pOwog
IGFzc2VydCAobCA9PSAwKTsKCiAgZXJybm8gPSAwOwogIGdvdF9waWQgPSB3YWl0cGlkIChjaGls
ZCwgJnN0YXR1cywgMCk7CiAgYXNzZXJ0X3BlcnJvciAoZXJybm8pOwogIGFzc2VydCAoZ290X3Bp
ZCA9PSBjaGlsZCk7CiAgYXNzZXJ0IChXSUZTVE9QUEVEIChzdGF0dXMpKTsKICBpZiAoV1NUT1BT
SUcgKHN0YXR1cykgPT0gZXhwZWN0KQogICAgZXhpdCAoMSk7CiAgYXNzZXJ0IChXU1RPUFNJRyAo
c3RhdHVzKSA9PSBTSUdUUkFQKTsKCiAgZXJybm8gPSAwOwogIGwgPSBwdHJhY2UgKFBUUkFDRV9D
T05ULCBjaGlsZCwgMGwsIDBsKTsKICBhc3NlcnRfcGVycm9yIChlcnJubyk7CiAgYXNzZXJ0IChs
ID09IDApOwoKICBlcnJubyA9IDA7CiAgZ290X3BpZCA9IHdhaXRwaWQgKGNoaWxkLCAmc3RhdHVz
LCAwKTsKICBhc3NlcnRfcGVycm9yIChlcnJubyk7CiAgYXNzZXJ0IChnb3RfcGlkID09IGNoaWxk
KTsKICBhc3NlcnQgKFdJRlNUT1BQRUQgKHN0YXR1cykpOwogIGFzc2VydCAoV1NUT1BTSUcgKHN0
YXR1cykgPT0gZXhwZWN0KTsKfQoKaW50Cm1haW4gKHZvaWQpCnsKICBwaWRfdCBnb3RfcGlkOwog
IGludCBpLCBzdGF0dXM7CiAgbG9uZyBsOwogIGludCBwYWdlc2l6ZSA9IGdldHBhZ2VzaXplICgp
OwogIHVuc2lnbmVkIGNoYXIgKnBhZ2UsICpwYWdlX2dvdDsKCiAgYXRleGl0IChjbGVhbnVwKTsK
ICBzaWduYWwgKFNJR0FCUlQsIGhhbmRsZXJfZmFpbCk7CiAgc2lnbmFsIChTSUdJTlQsIGhhbmRs
ZXJfZmFpbCk7CgogIGFzc2VydCAocGFnZXNpemUgPiAxKTsKCiAgZXJybm8gPSAwOwogIHBhZ2Ug
PSBtbWFwIChOVUxMLCAyICogcGFnZXNpemUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCgkgICAg
ICAgTUFQX1NIQVJFRCB8IE1BUF9BTk9OWU1PVVMsIC0xLCAwKTsKICBhc3NlcnRfcGVycm9yIChl
cnJubyk7CiAgYXNzZXJ0IChwYWdlICE9IE1BUF9GQUlMRUQpOwoKICBjaGlsZCA9IGZvcmsgKCk7
CiAgc3dpdGNoIChjaGlsZCkKICAgIHsKICAgIGNhc2UgLTE6CiAgICAgIGFzc2VydCAoMCk7CiAg
ICBjYXNlIDA6CiAgICAgIGwgPSBwdHJhY2UgKFBUUkFDRV9UUkFDRU1FLCAwLCBOVUxMLCBOVUxM
KTsKICAgICAgYXNzZXJ0IChsID09IDApOwoKICAgICAgaSA9IHJhaXNlIChTSUdVU1IxKTsKICAg
ICAgYXNzZXJ0IChpID09IDApOwoKICAgICAgZXJybm8gPSAwOwogICAgICBpID0gbXByb3RlY3Qg
KHBhZ2UsIHBhZ2VzaXplLCBQUk9UX05PTkUpOwogICAgICBhc3NlcnRfcGVycm9yIChlcnJubyk7
CiAgICAgIGFzc2VydCAoaSA9PSAwKTsKCiAgICAgIGkgPSByYWlzZSAoU0lHVVNSMSk7CiAgICAg
IGFzc2VydCAoaSA9PSAwKTsKCiAgICAgIGVycm5vID0gMDsKICAgICAgaSA9IG1wcm90ZWN0IChw
YWdlLCBwYWdlc2l6ZSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSk7CiAgICAgIGFzc2VydF9wZXJy
b3IgKGVycm5vKTsKICAgICAgYXNzZXJ0IChpID09IDApOwoKICAgICAgaSA9IHJhaXNlIChTSUdV
U1IxKTsKICAgICAgYXNzZXJ0IChpID09IDApOwoKICAgICAgZXJybm8gPSAwOwogICAgICBwYWdl
X2dvdCA9IG1yZW1hcCAocGFnZSwgcGFnZXNpemUsIDIgKiBwYWdlc2l6ZSwgTVJFTUFQX01BWU1P
VkUpOwogICAgICBhc3NlcnRfcGVycm9yIChlcnJubyk7CiAgICAgIGFzc2VydCAocGFnZV9nb3Qg
IT0gTUFQX0ZBSUxFRCk7CiAgICAgIGFzc2VydCAocGFnZV9nb3QgIT0gcGFnZSk7CgogICAgICBp
ID0gcmFpc2UgKFNJR1VTUjEpOwogICAgICBhc3NlcnQgKGkgPT0gMCk7CgogICAgICBlcnJubyA9
IDA7CiAgICAgIHBhZ2VfZ290ID0gbW1hcCAocGFnZSwgcGFnZXNpemUsIFBST1RfUkVBRCB8IFBS
T1RfV1JJVEUsCgkJICAgICAgIE1BUF9TSEFSRUQgfCBNQVBfQU5PTllNT1VTIHwgTUFQX0ZJWEVE
LCAtMSwgMCk7CiAgICAgIGFzc2VydF9wZXJyb3IgKGVycm5vKTsKICAgICAgYXNzZXJ0IChwYWdl
X2dvdCA9PSBwYWdlKTsKCiAgICAgIGkgPSByYWlzZSAoU0lHVVNSMSk7CiAgICAgIGFzc2VydCAo
aSA9PSAwKTsKCiAgICAgIGVycm5vID0gMDsKICAgICAgaSA9IG11bm1hcCAocGFnZSwgcGFnZXNp
emUpOwogICAgICBhc3NlcnRfcGVycm9yIChlcnJubyk7CiAgICAgIGFzc2VydCAoaSA9PSAwKTsK
CiAgICAgIGkgPSByYWlzZSAoU0lHVVNSMik7CiAgICAgIGFzc2VydCAoaSA9PSAwKTsKICAgICAg
LyogTk9UUkVBQ0hFRCAqLwogICAgICBhc3NlcnQgKDApOwogICAgZGVmYXVsdDoKICAgICAgYnJl
YWs7CiAgICB9CgogIGVycm5vID0gMDsKICBnb3RfcGlkID0gd2FpdHBpZCAoY2hpbGQsICZzdGF0
dXMsIDApOwogIGFzc2VydF9wZXJyb3IgKGVycm5vKTsKICBhc3NlcnQgKGdvdF9waWQgPT0gY2hp
bGQpOwogIGFzc2VydCAoV0lGU1RPUFBFRCAoc3RhdHVzKSk7CiAgYXNzZXJ0IChXU1RPUFNJRyAo
c3RhdHVzKSA9PSBTSUdVU1IxKTsKCiAgU0VUX1dBVENIUE9JTlQgKGNoaWxkLCBwYWdlKTsKCiAg
LyogbXByb3RlY3QgKHBhZ2UsIHBhZ2VzaXplLCBQUk9UX05PTkUpOyAgKi8KCiAgZXhwZWN0X3Ry
YXBfYW5kX3NpZ25hbCAoU0lHVVNSMSk7CgogIC8qIG1wcm90ZWN0IChwYWdlLCBwYWdlc2l6ZSwg
UFJPVF9SRUFEIHwgUFJPVF9XUklURSk7ICAqLwoKICBleHBlY3RfdHJhcF9hbmRfc2lnbmFsIChT
SUdVU1IxKTsKCiAgLyogbXJlbWFwIChwYWdlLCBwYWdlc2l6ZSwgMiAqIHBhZ2VzaXplLCBNUkVN
QVBfTUFZTU9WRSk7ICAqLwoKICBleHBlY3RfdHJhcF9hbmRfc2lnbmFsIChTSUdVU1IxKTsKCiAg
LyogbW1hcCAocGFnZSwgcGFnZXNpemUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCgkgICBNQVBf
U0hBUkVEIHwgTUFQX0FOT05ZTU9VUyB8IE1BUF9GSVhFRCwgLTEsIDApOyAgKi8KCiAgZXhwZWN0
X3RyYXBfYW5kX3NpZ25hbCAoU0lHVVNSMSk7CgogIC8qIG11bm1hcCAocGFnZSwgcGFnZXNpemUp
OyAgKi8KCiAgZXhwZWN0X3RyYXBfYW5kX3NpZ25hbCAoU0lHVVNSMik7CgogIHJldHVybiAwOwp9
CgojZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4224</attachid>
            <date>2009-09-23 14:46:00 +0000</date>
            <delta_ts>2009-09-23 14:46:56 +0000</delta_ts>
            <desc>Basic gdb/testsuite/ testcase.</desc>
            <filename>hwwatch-test.patch</filename>
            <type>text/plain</type>
            <size>2974</size>
            <attacher name="Jan Kratochvil">jan.kratochvil</attacher>
            
              <data encoding="base64">LS0tIC9kZXYvbnVsbAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHct
dW5yZWFkYWJsZS5jCkBAIC0wLDAgKzEsMzEgQEAKKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBv
ZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisKKyAgIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAg
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExp
Y2Vuc2UsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBU
aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dy
YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworCitz
dGF0aWMgaW50IGR1bW15LCAqcCwgKipwcDsKKworaW50CittYWluICh2b2lkKQoreworICBkdW1t
eSA9IDE7CisgIGR1bW15ID0gMjsKKyAgcCA9ICZkdW1teTsKKyAgZHVtbXkgPSAzOworICBkdW1t
eSA9IDQ7CisgIHBwID0gJnA7CisgIGR1bW15ID0gNTsKKyAgcmV0dXJuIDA7Cit9Ci0tLSAvZGV2
L251bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS93YXRjaHBvaW50LWh3LXVucmVhZGFi
bGUuZXhwCkBAIC0wLDAgKzEsNTAgQEAKKyMgQ29weXJpZ2h0IDIwMDkgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg
b3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9n
cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisj
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs
IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKyMgQXJjaCBub3Qgc3VwcG9y
dGluZyBodyB3YXRjaHBvaW50cyBkb2VzIG5vdCBpbXBseSBub19oYXJkd2FyZV93YXRjaHBvaW50
cyBzZXQuCitpZiB7KCFbaXN0YXJnZXQgImk/ODYtKi0qIl0gJiYgIVtpc3RhcmdldCAieDg2XzY0
LSotKiJdCisgICAgICYmICFbaXN0YXJnZXQgImlhNjQtKi0qIl0gJiYgIVtpc3RhcmdldCAiczM5
MCotKi0qIl0pCisgICAgfHwgW3RhcmdldF9pbmZvIGV4aXN0cyBnZGIsbm9faGFyZHdhcmVfd2F0
Y2hwb2ludHNdfSB0aGVuIHsKKyAgICB2ZXJib3NlICJTa2lwcGluZyB3YXRjaHBvaW50LWh3IHRl
c3QuIgorICAgIHJldHVybgorfQorCitzZXQgdGVzdGZpbGUgd2F0Y2hwb2ludC1ody11bnJlYWRh
YmxlCitpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxl
fV0gfSB7CisgICAgcmV0dXJuIC0xCit9CisKK2lmICFbcnVudG9fbWFpbl0geworICAgIHJldHVy
biAtMQorfQorCisjIFRoZSB0ZXN0IGJlbG93IHdvdWxkIGdldCBmYWxzZSBGQUlMIGFzIHRoZSBm
aXJzdCBicmVha3BvaW50IGxlZnQgYnkKKyMgcnVudG9fbWFpbiBtdXN0IGJlIHNpbmdsZXN0ZXBw
ZWQgb3ZlciB3aGlsZSB0aGlzIHRlc3RmaWxlIHRyaWVzIHRvIGVuc3VyZSBubworIyBzaW5nbGVz
dGVwcGluZyBvY2N1cnMgZm9yIHRoZSB3YXRjaHBvaW50cy4KK2RlbGV0ZV9icmVha3BvaW50cwor
CitnZGJfdGVzdCAic2V0IGRlYnVnIGluZnJ1biAxIgorZ2RiX3Rlc3QgInNob3cgZGVidWcgaW5m
cnVuIiAiSW5mZXJpb3IgZGVidWdnaW5nIGlzIDFcXC4iCisKK2dkYl90ZXN0ICJ3YXRjaCAqcCIg
ImFyZHdhcmUgd2F0Y2hwb2ludCAyOiBcXFwqcCIKK3NldCB0ZXN0ICJjYXRjaCAqcCIKK2dkYl90
ZXN0X211bHRpcGxlICJjb250aW51ZSIgJHRlc3QgeworICAgIC1yZSAiXHJcbmluZnJ1bjogbm8g
c3RlcHBpbmcsIGNvbnRpbnVlXHJcbi4qJGdkYl9wcm9tcHQgJCIgeworCWZhaWwgJHRlc3QKKyAg
ICB9CisgICAgLXJlICJcclxuaW5mcnVuOiBzdG9wcGVkIGJ5IHdhdGNocG9pbnRcclxuLipcclxu
SGFyZHdhcmUgd2F0Y2hwb2ludCAyOiBcXFwqcFxbXHJcblxdK09sZCB2YWx1ZSA9IDx1bnJlYWRh
YmxlPlxyXG5OZXcgdmFsdWUgPSAyXHJcbi4qJGdkYl9wcm9tcHQgJCIgeworCXBhc3MgJHRlc3QK
KyAgICB9Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4429</attachid>
            <date>2009-11-30 16:36:00 +0000</date>
            <delta_ts>2009-11-30 16:36:57 +0000</delta_ts>
            <desc>Same patch as jank&apos;s, only adapted to the latest gdb tree.</desc>
            <filename>hwwatch_2.patch</filename>
            <type>text/plain</type>
            <size>10480</size>
            <attacher name="Dragos Tatulea">dragos.tatulea</attacher>
            
              <data encoding="base64">LS0tCiBnZGIvYnJlYWtwb2ludC5jIHwgICA1NCArKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIGdkYi9icmVha3BvaW50LmggfCAgICA1ICsrKyst
CiBnZGIvZ2RiX3B0cmFjZS5oIHwgICAgNiArKysrKysKIGdkYi9pbmYtcHRyYWNlLmMgfCAgICA1
ICsrKystCiBnZGIvaW5mZXJpb3IuaCAgIHwgICAgMiArKwogZ2RiL2luZnJ1bi5jICAgICB8ICAg
MTkgKysrKysrKysrKysrKysrKystLQogZ2RiL2xpbnV4LW5hdC5jICB8ICAgMjkgKysrKysrKysr
KysrKysrKysrKysrLS0tLS0tLS0KIDcgZmlsZXMgY2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKSwg
MjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQuYyBiL2dkYi9icmVh
a3BvaW50LmMKaW5kZXggNDM0MGM1ZC4uODQ3MjdlYiAxMDA2NDQKLS0tIGEvZ2RiL2JyZWFrcG9p
bnQuYworKysgYi9nZGIvYnJlYWtwb2ludC5jCkBAIC0xMTk4LDcgKzExOTgsMTAgQEAgdXBkYXRl
X3dhdGNocG9pbnQgKHN0cnVjdCBicmVha3BvaW50ICpiLCBpbnQgcmVwYXJzZSkKIAkJICBhZGRy
ID0gdmFsdWVfYWRkcmVzcyAodik7CiAJCSAgbGVuID0gVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUg
KHYpKTsKIAkJICB0eXBlID0gaHdfd3JpdGU7Ci0JCSAgaWYgKGItPnR5cGUgPT0gYnBfcmVhZF93
YXRjaHBvaW50KQorCQkgIGlmICh2ID09IHZhbF9jaGFpbiAmJiB2YWx1ZV9sYXp5ICh2KSkKKwkJ
ICAgIHR5cGUgPSBod19tbWFwOworCQkgIGVsc2UgaWYgKGItPnR5cGUgPT0gYnBfcmVhZF93YXRj
aHBvaW50KQorCiAJCSAgICB0eXBlID0gaHdfcmVhZDsKIAkJICBlbHNlIGlmIChiLT50eXBlID09
IGJwX2FjY2Vzc193YXRjaHBvaW50KQogCQkgICAgdHlwZSA9IGh3X2FjY2VzczsKQEAgLTE0NzIs
OSArMTQ3NSwxNyBAQCBOb3RlOiBhdXRvbWF0aWNhbGx5IHVzaW5nIGhhcmR3YXJlIGJyZWFrcG9p
bnRzIGZvciByZWFkLW9ubHkgYWRkcmVzc2VzLlxuIikpOwogCSAgICAgIHdhdGNocG9pbnRzLiAg
SXQncyBub3QgY2xlYXIgdGhhdCBpdCdzIG5lY2Vzc2FyeS4uLiAqLwogCSAgICYmIGJwdC0+b3du
ZXItPmRpc3Bvc2l0aW9uICE9IGRpc3BfZGVsX2F0X25leHRfc3RvcCkKICAgICB7Ci0gICAgICB2
YWwgPSB0YXJnZXRfaW5zZXJ0X3dhdGNocG9pbnQgKGJwdC0+YWRkcmVzcywgCi0JCQkJICAgICAg
YnB0LT5sZW5ndGgsCi0JCQkJICAgICAgYnB0LT53YXRjaHBvaW50X3R5cGUpOworICAgICAgaWYg
KGJwdC0+d2F0Y2hwb2ludF90eXBlID09IGh3X21tYXApCisJeworCSAgc3RydWN0IGluZmVyaW9y
ICppbmYgPSBjdXJyZW50X2luZmVyaW9yICgpOworCisJICBpbmYtPnRyYXBfc3lzY2FsbHMgPSAx
OworCSAgdmFsID0gMDsKKwl9CisgICAgICBlbHNlCisJdmFsID0gdGFyZ2V0X2luc2VydF93YXRj
aHBvaW50IChicHQtPmFkZHJlc3MsCisJCQkJCWJwdC0+bGVuZ3RoLAorCQkJCQlicHQtPndhdGNo
cG9pbnRfdHlwZSk7CiAgICAgICBicHQtPmluc2VydGVkID0gKHZhbCAhPSAtMSk7CiAgICAgfQog
CkBAIC0yMTAwLDkgKzIxMTEsMTEgQEAgcmVtb3ZlX2JyZWFrcG9pbnRfMSAoc3RydWN0IGJwX2xv
Y2F0aW9uICpiLCBpbnNlcnRpb25fc3RhdGVfdCBpcykKICAgICAgIHN0cnVjdCB2YWx1ZSAqbjsK
IAogICAgICAgYi0+aW5zZXJ0ZWQgPSAoaXMgPT0gbWFya19pbnNlcnRlZCk7Ci0gICAgICB2YWwg
PSB0YXJnZXRfcmVtb3ZlX3dhdGNocG9pbnQgKGItPmFkZHJlc3MsIGItPmxlbmd0aCwgCi0JCQkJ
ICAgICAgYi0+d2F0Y2hwb2ludF90eXBlKTsKLQorICAgICAgaWYgKGItPndhdGNocG9pbnRfdHlw
ZSA9PSBod19tbWFwKQorCXZhbCA9IDA7CisgICAgICBlbHNlCisJdmFsID0gdGFyZ2V0X3JlbW92
ZV93YXRjaHBvaW50IChiLT5hZGRyZXNzLCBiLT5sZW5ndGgsCisJCQkJCWItPndhdGNocG9pbnRf
dHlwZSk7CiAgICAgICAvKiBGYWlsdXJlIHRvIHJlbW92ZSBhbnkgb2YgdGhlIGhhcmR3YXJlIHdh
dGNocG9pbnRzIGNvbWVzIGhlcmUuICAqLwogICAgICAgaWYgKChpcyA9PSBtYXJrX3VuaW5zZXJ0
ZWQpICYmIChiLT5pbnNlcnRlZCkpCiAJd2FybmluZyAoXygiQ291bGQgbm90IHJlbW92ZSBoYXJk
d2FyZSB3YXRjaHBvaW50ICVkLiIpLApAQCAtMzE2Miw2ICszMTc1LDI1IEBAIHdhdGNocG9pbnRz
X3RyaWdnZXJlZCAoc3RydWN0IHRhcmdldF93YWl0c3RhdHVzICp3cykKICAgcmV0dXJuIDE7CiB9
CiAKK3ZvaWQKK21tYXBfd2F0Y2hwb2ludHNfdHJpZ2dlcmVkICh2b2lkKQoreworICBzdHJ1Y3Qg
YnJlYWtwb2ludCAqYjsKKworICBBTExfQlJFQUtQT0lOVFMgKGIpCisgICAgaWYgKGItPnR5cGUg
PT0gYnBfaGFyZHdhcmVfd2F0Y2hwb2ludCkKKyAgICAgIHsKKwlzdHJ1Y3QgYnBfbG9jYXRpb24g
KmxvYzsKKworCWZvciAobG9jID0gYi0+bG9jOyBsb2M7IGxvYyA9IGxvYy0+bmV4dCkKKwkgIGlm
IChsb2MtPndhdGNocG9pbnRfdHlwZSA9PSBod19tbWFwKQorCSAgICB7CisJICAgICAgYi0+d2F0
Y2hwb2ludF90cmlnZ2VyZWQgPSB3YXRjaF90cmlnZ2VyZWRfeWVzOworCSAgICAgIGJyZWFrOwor
CSAgICB9CisgICAgICB9Cit9CisKIC8qIFBvc3NpYmxlIHJldHVybiB2YWx1ZXMgZm9yIHdhdGNo
cG9pbnRfY2hlY2sgKHRoaXMgY2FuJ3QgYmUgYW4gZW51bQogICAgYmVjYXVzZSBvZiBjaGVja19l
cnJvcnMpLiAgKi8KIC8qIFRoZSB3YXRjaHBvaW50IGhhcyBiZWVuIGRlbGV0ZWQuICAqLwpAQCAt
NzA4NCw3ICs3MTE2LDcgQEAgd2F0Y2hfY29tbWFuZF8xIChjaGFyICphcmcsIGludCBhY2Nlc3Nm
bGFnLCBpbnQgZnJvbV90dHkpCiAgIHN0cnVjdCBicmVha3BvaW50ICpiLCAqc2NvcGVfYnJlYWtw
b2ludCA9IE5VTEw7CiAgIHN0cnVjdCBleHByZXNzaW9uICpleHA7CiAgIHN0cnVjdCBibG9jayAq
ZXhwX3ZhbGlkX2Jsb2NrOwotICBzdHJ1Y3QgdmFsdWUgKnZhbCwgKm1hcms7CisgIHN0cnVjdCB2
YWx1ZSAqdmFsLCAqbWFyaywgKnJlc3VsdDsKICAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lOwog
ICBjaGFyICpleHBfc3RhcnQgPSBOVUxMOwogICBjaGFyICpleHBfZW5kID0gTlVMTDsKQEAgLTcx
NzEsNyArNzIwMyw3IEBAIHdhdGNoX2NvbW1hbmRfMSAoY2hhciAqYXJnLCBpbnQgYWNjZXNzZmxh
ZywgaW50IGZyb21fdHR5KQogCiAgIGV4cF92YWxpZF9ibG9jayA9IGlubmVybW9zdF9ibG9jazsK
ICAgbWFyayA9IHZhbHVlX21hcmsgKCk7Ci0gIGZldGNoX3dhdGNocG9pbnRfdmFsdWUgKGV4cCwg
JnZhbCwgTlVMTCwgTlVMTCk7CisgIGZldGNoX3dhdGNocG9pbnRfdmFsdWUgKGV4cCwgJnZhbCwg
JnJlc3VsdCwgTlVMTCk7CiAgIGlmICh2YWwgIT0gTlVMTCkKICAgICByZWxlYXNlX3ZhbHVlICh2
YWwpOwogCkBAIC03MjA2LDcgKzcyMzgsNyBAQCB3YXRjaF9jb21tYW5kXzEgKGNoYXIgKmFyZywg
aW50IGFjY2Vzc2ZsYWcsIGludCBmcm9tX3R0eSkKICAgbWVtX2NudCA9IGNhbl91c2VfaGFyZHdh
cmVfd2F0Y2hwb2ludCAodmFsKTsKICAgaWYgKG1lbV9jbnQgPT0gMCAmJiBicF90eXBlICE9IGJw
X2hhcmR3YXJlX3dhdGNocG9pbnQpCiAgICAgZXJyb3IgKF8oIkV4cHJlc3Npb24gY2Fubm90IGJl
IGltcGxlbWVudGVkIHdpdGggcmVhZC9hY2Nlc3Mgd2F0Y2hwb2ludC4iKSk7Ci0gIGlmIChtZW1f
Y250ICE9IDApCisgIGlmIChtZW1fY250ICE9IDAgfHwgIXZhbCkKICAgICB7CiAgICAgICBpID0g
aHdfd2F0Y2hwb2ludF91c2VkX2NvdW50IChicF90eXBlLCAmb3RoZXJfdHlwZV91c2VkKTsKICAg
ICAgIHRhcmdldF9yZXNvdXJjZXNfb2sgPSAKQEAgLTcyMjEsNyArNzI1Myw3IEBAIHdhdGNoX2Nv
bW1hbmRfMSAoY2hhciAqYXJnLCBpbnQgYWNjZXNzZmxhZywgaW50IGZyb21fdHR5KQogCiAgIC8q
IENoYW5nZSB0aGUgdHlwZSBvZiBicmVha3BvaW50IHRvIGFuIG9yZGluYXJ5IHdhdGNocG9pbnQg
aWYgYSBoYXJkd2FyZQogICAgICB3YXRjaHBvaW50IGNvdWxkIG5vdCBiZSBzZXQuICAqLwotICBp
ZiAoIW1lbV9jbnQgfHwgdGFyZ2V0X3Jlc291cmNlc19vayA8PSAwKQorICBpZiAoKCFtZW1fY250
ICYmIHZhbCkgfHwgdGFyZ2V0X3Jlc291cmNlc19vayA8PSAwKQogICAgIGJwX3R5cGUgPSBicF93
YXRjaHBvaW50OwogCiAgIGZyYW1lID0gYmxvY2tfaW5uZXJtb3N0X2ZyYW1lIChleHBfdmFsaWRf
YmxvY2spOwpkaWZmIC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQuaCBiL2dkYi9icmVha3BvaW50LmgK
aW5kZXggNWViZDM2Yy4uMTgzNjc0NSAxMDA2NDQKLS0tIGEvZ2RiL2JyZWFrcG9pbnQuaAorKysg
Yi9nZGIvYnJlYWtwb2ludC5oCkBAIC0xNjgsNyArMTY4LDggQEAgZW51bSB0YXJnZXRfaHdfYnBf
dHlwZQogICAgIGh3X3dyaXRlICAgPSAwLCAJCS8qIENvbW1vbiAgSFcgd2F0Y2hwb2ludCAqLwog
ICAgIGh3X3JlYWQgICAgPSAxLCAJCS8qIFJlYWQgICAgSFcgd2F0Y2hwb2ludCAqLwogICAgIGh3
X2FjY2VzcyAgPSAyLCAJCS8qIEFjY2VzcyAgSFcgd2F0Y2hwb2ludCAqLwotICAgIGh3X2V4ZWN1
dGUgPSAzCQkvKiBFeGVjdXRlIEhXIGJyZWFrcG9pbnQgKi8KKyAgICBod19leGVjdXRlID0gMywJ
CS8qIEV4ZWN1dGUgSFcgYnJlYWtwb2ludCAqLworICAgIGh3X21tYXAgICAgPSA0CQkvKiBNZW1v
cnkgYXJlYSBnZXRzIG1tYXAoMillZC4gICovCiAgIH07CiAKIApAQCAtOTU3LDYgKzk1OCw4IEBA
IGV4dGVybiBpbnQgZGVwcmVjYXRlZF9yZW1vdmVfcmF3X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJh
cmNoICosIHZvaWQgKik7CiAgICB0YXJnZXQuICAqLwogaW50IHdhdGNocG9pbnRzX3RyaWdnZXJl
ZCAoc3RydWN0IHRhcmdldF93YWl0c3RhdHVzICopOwogCitleHRlcm4gdm9pZCBtbWFwX3dhdGNo
cG9pbnRzX3RyaWdnZXJlZCAodm9pZCk7CisKIC8qIFVwZGF0ZSBCVUYsIHdoaWNoIGlzIExFTiBi
eXRlcyByZWFkIGZyb20gdGhlIHRhcmdldCBhZGRyZXNzIE1FTUFERFIsCiAgICBieSByZXBsYWNp
bmcgYW55IG1lbW9yeSBicmVha3BvaW50cyB3aXRoIHRoZWlyIHNoYWRvd2VkIGNvbnRlbnRzLiAg
Ki8KIHZvaWQgYnJlYWtwb2ludF9yZXN0b3JlX3NoYWRvd3MgKGdkYl9ieXRlICpidWYsIFVMT05H
RVNUIG1lbWFkZHIsIApkaWZmIC0tZ2l0IGEvZ2RiL2dkYl9wdHJhY2UuaCBiL2dkYi9nZGJfcHRy
YWNlLmgKaW5kZXggOGUzMmU4OC4uODUzYTcwMiAxMDA2NDQKLS0tIGEvZ2RiL2dkYl9wdHJhY2Uu
aAorKysgYi9nZGIvZ2RiX3B0cmFjZS5oCkBAIC05Miw2ICs5MiwxMiBAQAogIyBlbmRpZgogI2Vu
ZGlmCiAKKworI2lmbmRlZiBQVF9TWVNDQUxMCisjIGRlZmluZSBQVF9TWVNDQUxMCTI0CS8qIENv
bnRpbnVlIGFuZCBzdG9wIGF0IHRoZSBuZXh0IChyZXR1cm4gZnJvbSkKKwkJCQkgICBzeXNjYWxs
LiAgKi8KKyNlbmRpZgorCiAvKiBOb3QgYWxsIHN5c3RlbXMgc3VwcG9ydCBhdHRhY2hpbmcgYW5k
IGRldGFjaGluZy4gICAqLwogCiAjaWZuZGVmIFBUX0FUVEFDSApkaWZmIC0tZ2l0IGEvZ2RiL2lu
Zi1wdHJhY2UuYyBiL2dkYi9pbmYtcHRyYWNlLmMKaW5kZXggYTEzODcwMS4uZDBjZWRkNyAxMDA2
NDQKLS0tIGEvZ2RiL2luZi1wdHJhY2UuYworKysgYi9nZGIvaW5mLXB0cmFjZS5jCkBAIC0zNDYs
NyArMzQ2LDEwIEBAIGluZl9wdHJhY2VfcmVzdW1lIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzLAog
ICBlbHNlCiAgICAgcmVxdWVzdCA9IFBUX0NPTlRJTlVFOwogCi0gIGlmIChzdGVwKQorICBpZiAo
c3RlcCA9PSAyKQorICAgIHJlcXVlc3QgPSBQVF9TWVNDQUxMOworICBlbHNlIGlmIChzdGVwKQor
CiAgICAgewogICAgICAgLyogSWYgdGhpcyBzeXN0ZW0gZG9lcyBub3Qgc3VwcG9ydCBQVF9TVEVQ
LCBhIGhpZ2hlciBsZXZlbAogICAgICAgICAgZnVuY3Rpb24gd2lsbCBoYXZlIGNhbGxlZCBzaW5n
bGVfc3RlcCgpIHRvIHRyYW5zbXV0ZSB0aGUgc3RlcApkaWZmIC0tZ2l0IGEvZ2RiL2luZmVyaW9y
LmggYi9nZGIvaW5mZXJpb3IuaAppbmRleCAxNGI5OWUyLi43NmJhOWI1IDEwMDY0NAotLS0gYS9n
ZGIvaW5mZXJpb3IuaAorKysgYi9nZGIvaW5mZXJpb3IuaApAQCAtNDc4LDYgKzQ3OCw4IEBAIHN0
cnVjdCBpbmZlcmlvcgogICAvKiBQZXIgaW5mZXJpb3IgZGF0YS1wb2ludGVycyByZXF1aXJlZCBi
eSBvdGhlciBHREIgbW9kdWxlcy4gICovCiAgIHZvaWQgKipkYXRhOwogICB1bnNpZ25lZCBudW1f
ZGF0YTsKKworICB1bnNpZ25lZCB0cmFwX3N5c2NhbGxzIDogMTsKIH07CiAKIC8qIEtlZXAgYSBy
ZWdpc3RyeSBvZiBwZXItaW5mZXJpb3IgZGF0YS1wb2ludGVycyByZXF1aXJlZCBieSBvdGhlciBH
REIKZGlmZiAtLWdpdCBhL2dkYi9pbmZydW4uYyBiL2dkYi9pbmZydW4uYwppbmRleCBjYjUyNzhj
Li5iZmJlNWNmIDEwMDY0NAotLS0gYS9nZGIvaW5mcnVuLmMKKysrIGIvZ2RiL2luZnJ1bi5jCkBA
IC0xNDM2LDcgKzE0MzYsNyBAQCBhIGNvbW1hbmQgbGlrZSBgcmV0dXJuJyBvciBganVtcCcgdG8g
Y29udGludWUgZXhlY3V0aW9uLiIpKTsKICAgICB9CiAKICAgLyogRG8gd2UgbmVlZCB0byBkbyBp
dCB0aGUgaGFyZCB3YXksIHcvdGVtcCBicmVha3BvaW50cz8gICovCi0gIGVsc2UgaWYgKHN0ZXAp
CisgIGVsc2UgaWYgKHN0ZXAgPT0gMSkKICAgICBzdGVwID0gbWF5YmVfc29mdHdhcmVfc2luZ2xl
c3RlcCAoZ2RiYXJjaCwgcGMpOwogCiAgIGlmIChzaG91bGRfcmVzdW1lKQpAQCAtMTYwOCw2ICsx
NjA4LDcgQEAgY2xlYXJfcHJvY2VlZF9zdGF0dXMgKHZvaWQpCiAKICAgICAgIGluZmVyaW9yID0g
Y3VycmVudF9pbmZlcmlvciAoKTsKICAgICAgIGluZmVyaW9yLT5zdG9wX3Nvb24gPSBOT19TVE9Q
X1FVSUVUTFk7CisgICAgICBpbmZlcmlvci0+dHJhcF9zeXNjYWxscyA9IDA7CiAgICAgfQogCiAg
IHN0b3BfYWZ0ZXJfdHJhcCA9IDA7CkBAIC0xNzA4LDYgKzE3MDksNyBAQCBwcm9jZWVkIChDT1JF
X0FERFIgYWRkciwgZW51bSB0YXJnZXRfc2lnbmFsIHNpZ2duYWwsIGludCBzdGVwKQogICBDT1JF
X0FERFIgcGM7CiAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICphc3BhY2U7CiAgIGludCBvbmVwcm9j
ID0gMDsKKyAgc3RydWN0IGluZmVyaW9yICppbmY7CiAKICAgLyogSWYgd2UncmUgc3RvcHBlZCBh
dCBhIGZvcmsvdmZvcmssIGZvbGxvdyB0aGUgYnJhbmNoIHNldCBieSB0aGUKICAgICAgInNldCBm
b2xsb3ctZm9yay1tb2RlIiBjb21tYW5kOyBvdGhlcndpc2UsIHdlJ2xsIGp1c3QgcHJvY2VlZApA
QCAtMTg3MSw4ICsxODczLDEyIEBAIHByb2NlZWQgKENPUkVfQUREUiBhZGRyLCBlbnVtIHRhcmdl
dF9zaWduYWwgc2lnZ25hbCwgaW50IHN0ZXApCiAgIC8qIFJlc2V0IHRvIG5vcm1hbCBzdGF0ZS4g
ICovCiAgIGluaXRfaW5md2FpdF9zdGF0ZSAoKTsKIAorICBpbmYgPSBjdXJyZW50X2luZmVyaW9y
ICgpOworCiAgIC8qIFJlc3VtZSBpbmZlcmlvci4gICovCi0gIHJlc3VtZSAob25lcHJvYyB8fCBz
dGVwIHx8IGJwc3RhdF9zaG91bGRfc3RlcCAoKSwgdHAtPnN0b3Bfc2lnbmFsKTsKKyAgcmVzdW1l
IChvbmVwcm9jIHx8IHN0ZXAgfHwgYnBzdGF0X3Nob3VsZF9zdGVwICgpID8gMSA6CisJICAoaW5m
LT50cmFwX3N5c2NhbGxzID8gMiA6IDApLAorCSAgdHAtPnN0b3Bfc2lnbmFsKTsKIAogICAvKiBX
YWl0IGZvciBpdCB0byBzdG9wIChpZiBub3Qgc3RhbmRhbG9uZSkKICAgICAgYW5kIGluIGFueSBj
YXNlIGRlY29kZSB3aHkgaXQgc3RvcHBlZCwgYW5kIGFjdCBhY2NvcmRpbmdseS4gICovCkBAIC0z
NDA1LDYgKzM0MTEsMTUgQEAgdGFyZ2V0cyBzaG91bGQgYWRkIG5ldyB0aHJlYWRzIHRvIHRoZSB0
aHJlYWQgbGlzdCB0aGVtc2VsdmVzIGluIG5vbi1zdG9wIG1vZGUuIikKICAgZWxzZQogICAgIHN0
b3BwZWRfYnlfd2F0Y2hwb2ludCA9IHdhdGNocG9pbnRzX3RyaWdnZXJlZCAoJmVjcy0+d3MpOwog
CisgIGlmIChlY3MtPndzLmtpbmQgPT0gVEFSR0VUX1dBSVRLSU5EX1NUT1BQRUQKKyAgICAgICYm
IGVjcy0+d3MudmFsdWUuc2lnID09IFRBUkdFVF9TSUdOQUxfVFJBUCkKKyAgICB7CisgICAgICBz
dHJ1Y3QgaW5mZXJpb3IgKmluZmVyaW9yID0gY3VycmVudF9pbmZlcmlvciAoKTsKKworICAgICAg
aWYgKGluZmVyaW9yLT50cmFwX3N5c2NhbGxzKQorCW1tYXBfd2F0Y2hwb2ludHNfdHJpZ2dlcmVk
ICgpOworICAgIH0KKwogICAvKiBJZiBuZWNlc3NhcnksIHN0ZXAgb3ZlciB0aGlzIHdhdGNocG9p
bnQuICBXZSdsbCBiZSBiYWNrIHRvIGRpc3BsYXkKICAgICAgaXQgaW4gYSBtb21lbnQuICAqLwog
ICBpZiAoc3RvcHBlZF9ieV93YXRjaHBvaW50CmRpZmYgLS1naXQgYS9nZGIvbGludXgtbmF0LmMg
Yi9nZGIvbGludXgtbmF0LmMKaW5kZXggYzBhZmVjZC4uNDhlNDMzOSAxMDA2NDQKLS0tIGEvZ2Ri
L2xpbnV4LW5hdC5jCisrKyBiL2dkYi9saW51eC1uYXQuYwpAQCAtMTkwOCw2ICsxOTA4LDIyIEBA
IHJlc3VtZV9zZXRfY2FsbGJhY2sgKHN0cnVjdCBsd3BfaW5mbyAqbHAsIHZvaWQgKmRhdGEpCiAg
IHJldHVybiAwOwogfQogCitzdGF0aWMgY29uc3QgY2hhciAqCitzdGVwX3N0cmluZyAoaW50IHN0
ZXApCit7CisgIHN3aXRjaCAoc3RlcCkKKyAgeworICAgIGNhc2UgMDoKKyAgICAgIHJldHVybiAi
UFRSQUNFX0NPTlQiOworICAgIGNhc2UgMToKKyAgICAgIHJldHVybiAiUFRSQUNFX1NJTkdMRVNU
RVAiOworICAgIGNhc2UgMjoKKyAgICAgIHJldHVybiAiUFRSQUNFX1NZU0NBTEwiOworICAgIGRl
ZmF1bHQ6CisgICAgICBnZGJfYXNzZXJ0ICgwKTsKKyAgfQorfQorCiBzdGF0aWMgdm9pZAogbGlu
dXhfbmF0X3Jlc3VtZSAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywKIAkJICBwdGlkX3QgcHRpZCwg
aW50IHN0ZXAsIGVudW0gdGFyZ2V0X3NpZ25hbCBzaWdubykKQEAgLTIwMjUsNyArMjA0MSw3IEBA
IGxpbnV4X25hdF9yZXN1bWUgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMsCiAgIGlmIChkZWJ1Z19s
aW51eF9uYXQpCiAgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAogCQkJIkxMUjog
JXMgJXMsICVzIChyZXN1bWUgZXZlbnQgdGhyZWFkKVxuIiwKLQkJCXN0ZXAgPyAiUFRSQUNFX1NJ
TkdMRVNURVAiIDogIlBUUkFDRV9DT05UIiwKKwkJCXN0ZXBfc3RyaW5nKHN0ZXApLAogCQkJdGFy
Z2V0X3BpZF90b19zdHIgKHB0aWQpLAogCQkJc2lnbm8gPyBzdHJzaWduYWwgKHNpZ25vKSA6ICIw
Iik7CiAKQEAgLTMxODUsOCArMzIwMSw3IEBAIGxpbnV4X25hdF9maWx0ZXJfZXZlbnQgKGludCBs
d3BpZCwgaW50IHN0YXR1cywgaW50IG9wdGlvbnMpCiAgICAgICBpZiAoZGVidWdfbGludXhfbmF0
KQogCWZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKIAkJCSAgICAiTExXOiAlcyAlcywg
MCwgMCAoZGlzY2FyZCBTSUdTVE9QKVxuIiwKLQkJCSAgICBscC0+c3RlcCA/Ci0JCQkgICAgIlBU
UkFDRV9TSU5HTEVTVEVQIiA6ICJQVFJBQ0VfQ09OVCIsCisJCQkgICAgc3RlcF9zdHJpbmcobHAt
PnN0ZXApLAogCQkJICAgIHRhcmdldF9waWRfdG9fc3RyIChscC0+cHRpZCkpOwogCiAgICAgICBs
cC0+c3RvcHBlZCA9IDA7CkBAIC0zMjE1LDggKzMyMzAsNyBAQCBsaW51eF9uYXRfZmlsdGVyX2V2
ZW50IChpbnQgbHdwaWQsIGludCBzdGF0dXMsIGludCBvcHRpb25zKQogICAgICAgaWYgKGRlYnVn
X2xpbnV4X25hdCkKIAlmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCiAJCQkgICAgIkxM
VzogJXMgJXMsIDAsIDAgKGRpc2NhcmQgU0lHSU5UKVxuIiwKLQkJCSAgICBscC0+c3RlcCA/Ci0J
CQkgICAgIlBUUkFDRV9TSU5HTEVTVEVQIiA6ICJQVFJBQ0VfQ09OVCIsCisJCQkgICAgc3RlcF9z
dHJpbmcobHAtPnN0ZXApLAogCQkJICAgIHRhcmdldF9waWRfdG9fc3RyIChscC0+cHRpZCkpOwog
CiAgICAgICBscC0+c3RvcHBlZCA9IDA7CkBAIC0zMzUwLDcgKzMzNjQsNyBAQCByZXRyeToKICAg
ICAgIGlmIChkZWJ1Z19saW51eF9uYXQpCiAJZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9n
LAogCQkJICAgICJMTFc6ICVzICVzLCAwLCAwIChleHBlY3QgU0lHU1RPUClcbiIsCi0JCQkgICAg
bHAtPnN0ZXAgPyAiUFRSQUNFX1NJTkdMRVNURVAiIDogIlBUUkFDRV9DT05UIiwKKwkJCSAgICBz
dGVwX3N0cmluZyhscC0+c3RlcCksCiAJCQkgICAgdGFyZ2V0X3BpZF90b19zdHIgKGxwLT5wdGlk
KSk7CiAgICAgICBscC0+c3RvcHBlZCA9IDA7CiAgICAgICBnZGJfYXNzZXJ0IChscC0+cmVzdW1l
ZCk7CkBAIC0zNTYyLDggKzM1NzYsNyBAQCByZXRyeToKIAkgIGlmIChkZWJ1Z19saW51eF9uYXQp
CiAJICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKIAkJCQkiTExXOiAlcyAlcywg
JXMgKHByZWVtcHQgJ2hhbmRsZScpXG4iLAotCQkJCWxwLT5zdGVwID8KLQkJCQkiUFRSQUNFX1NJ
TkdMRVNURVAiIDogIlBUUkFDRV9DT05UIiwKKwkJCQlzdGVwX3N0cmluZyhscC0+c3RlcCksCiAJ
CQkJdGFyZ2V0X3BpZF90b19zdHIgKGxwLT5wdGlkKSwKIAkJCQlzaWdubyA/IHN0cnNpZ25hbCAo
c2lnbm8pIDogIjAiKTsKIAkgIGxwLT5zdG9wcGVkID0gMDsKLS0gCjEuNi41LjIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4430</attachid>
            <date>2009-11-30 16:37:00 +0000</date>
            <delta_ts>2009-11-30 16:37:39 +0000</delta_ts>
            <desc>Added more test cases.</desc>
            <filename>hwwatch-test_2.patch</filename>
            <type>text/plain</type>
            <size>5412</size>
            <attacher name="Dragos Tatulea">dragos.tatulea</attacher>
            
              <data encoding="base64">LS0tCiBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHctdW5yZWFkYWJsZS5jICB8
ICAgNDUgKysrKysrKwogLi4uL2dkYi5iYXNlL3dhdGNocG9pbnQtaHctdW5yZWFkYWJsZS5leHAg
ICAgICAgICAgfCAgMTI3ICsrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDE3
MiBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90
ZXN0c3VpdGUvZ2RiLmJhc2Uvd2F0Y2hwb2ludC1ody11bnJlYWRhYmxlLmMKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHctdW5yZWFkYWJsZS5l
eHAKCmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHctdW5y
ZWFkYWJsZS5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS93YXRjaHBvaW50LWh3LXVucmVhZGFi
bGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODdjMjkzCi0tLSAvZGV2
L251bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS93YXRjaHBvaW50LWh3LXVucmVhZGFi
bGUuYwpAQCAtMCwwICsxLDQ1IEBACisvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0
aGUgR05VIGRlYnVnZ2VyLgorCisgICBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv
cgorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9n
cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg
bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2luY2x1ZGUg
PHN0ZGlvLmg+CisKK3N0YXRpYyBpbnQgZHVtbXksICpwLCAqKnBwOworCitpbnQKK21haW4gKHZv
aWQpCit7CisgIGR1bW15ID0gMTsKKyAgZHVtbXkgPSAyOworICBwID0gJmR1bW15OworICBkdW1t
eSA9IDM7CisgIGR1bW15ID0gNDsKKyAgcHAgPSAmcDsKKyAgZHVtbXkgPSA1OworICBwcCA9IE5V
TEw7CisgIGR1bW15ID0gNjsKKyAgcCA9IE5VTEw7CisgIGR1bW15ID0gNzsKKyAgcCA9ICZkdW1t
eTsgCisgIGR1bW15ID0gODsKKyAgZHVtbXkgPSA5OworICBwcCA9ICZwOworICBkdW1teSA9IDEw
OworICBwID0gKnBwOworICBkdW1teSA9IDExOworCisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0
IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS93YXRjaHBvaW50LWh3LXVucmVhZGFibGUuZXhwIGIv
Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS93YXRjaHBvaW50LWh3LXVucmVhZGFibGUuZXhwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzNDk3MmYKLS0tIC9kZXYvbnVsbAorKysg
Yi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHctdW5yZWFkYWJsZS5leHAKQEAg
LTAsMCArMSwxMjcgQEAKKyMgQ29weXJpZ2h0IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisj
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMK
KyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0
cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKyMgVGVzdHMgd2F0Y2hwb2ludHMuCisjIElu
cHV0OiBBcnJheSBvZiBsaXN0IGNvbnRhaW5pbmcgdGhlIGZvbG93aW5nIGVsZW1lbnRzOgorIyAx
OiBXX05BTUUgLSB3YXRjaGVkIHZhciBuYW1lCisjIDI6IFdfSUQgLSB3YXRjaGVkIHZhciBpZAor
IyAzOiBPTERfVkFMIC0gZXhwZWN0ZWQgb2xkIHZhbAorIyA0OiBORVdfVkFMIC0gZXhwZWN0ZWQg
bmV3IHZhbAorcHJvYyBnZGJfd2F0Y2hfdGVzdCB7YXJnX2FycmF5fSB7CisgICAgdXB2YXIgJGFy
Z19hcnJheSBhcmdfYXJyCisgICAgZ2xvYmFsIHRlc3QKKyAgICBnbG9iYWwgZ2RiX3Byb21wdAor
CisgICAgc2V0IGV4cGVjdF9vdXRwdXQgIlxyXG5pbmZydW46IHN0b3BwZWQgYnkgd2F0Y2hwb2lu
dFxyXG4uKiIKKyAgICBmb3JlYWNoIHtrIHZ9IFthcnJheSBnZXQgYXJnX2Fycl0geworICAgICAg
ICBzZXQgd19uYW1lIFtsaW5kZXggJHYgMF0KKyAgICAgICAgc2V0IHdfaWQgW2xpbmRleCAkdiAx
XQorICAgICAgICBzZXQgb2xkX3ZhbCBbbGluZGV4ICR2IDJdCisgICAgICAgIHNldCBuZXdfdmFs
IFtsaW5kZXggJHYgM10KKyAgICAgICAgCisgICAgICAgIHNldCBleHBlY3Rfb3V0cHV0ICIkZXhw
ZWN0X291dHB1dFxyXG5IYXJkd2FyZSB3YXRjaHBvaW50ICR3X2lkOiBcXCR3X25hbWVcW1xyXG5c
XStPbGQgdmFsdWUgPSAkb2xkX3ZhbFxyXG5OZXcgdmFsdWUgPSAkbmV3X3ZhbCIKKyAgICB9CisK
KyAgICBnZGJfdGVzdF9tdWx0aXBsZSAiY29udGludWUiICR0ZXN0IHsKKyAgICAgICAgLXJlICIk
ZXhwZWN0X291dHB1dC4qJGdkYl9wcm9tcHQgJCIgeworICAgICAgICAgICAgI3B1dHMgIlBBU1Mi
CisgICAgICAgICAgICBwYXNzICR0ZXN0CisgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdCB7Cisg
ICAgICAgICAgICAjcHV0cyAiRkFJTCIKKyAgICAgICAgICAgIGZhaWwgJHRlc3QKKyAgICAgICAg
ICAgIHJldHVybiAwCisgICAgICAgIH0KKyAgIH0KKworICAgcmV0dXJuIDEKK30KKworIyBBcmNo
IG5vdCBzdXBwb3J0aW5nIGh3IHdhdGNocG9pbnRzIGRvZXMgbm90IGltcGx5IG5vX2hhcmR3YXJl
X3dhdGNocG9pbnRzIHNldC4KK2lmIHsoIVtpc3RhcmdldCAiaT84Ni0qLSoiXSAmJiAhW2lzdGFy
Z2V0ICJ4ODZfNjQtKi0qIl0KKyAgICAgJiYgIVtpc3RhcmdldCAiaWE2NC0qLSoiXSAmJiAhW2lz
dGFyZ2V0ICJzMzkwKi0qLSoiXSkKKyAgICB8fCBbdGFyZ2V0X2luZm8gZXhpc3RzIGdkYixub19o
YXJkd2FyZV93YXRjaHBvaW50c119IHRoZW4geworICAgIHZlcmJvc2UgIlNraXBwaW5nIHdhdGNo
cG9pbnQtaHcgdGVzdC4iCisgICAgcmV0dXJuCit9CisKK3NldCB0ZXN0ZmlsZSB3YXRjaHBvaW50
LWh3LXVucmVhZGFibGUKK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhw
ICR7dGVzdGZpbGV9XSB9IHsKKyAgICByZXR1cm4gLTEKK30KKworaWYgIVtydW50b19tYWluXSB7
CisgICAgcmV0dXJuIC0xCit9CisKKyMgVGhlIHRlc3QgYmVsb3cgd291bGQgZ2V0IGZhbHNlIEZB
SUwgYXMgdGhlIGZpcnN0IGJyZWFrcG9pbnQgbGVmdCBieQorIyBydW50b19tYWluIG11c3QgYmUg
c2luZ2xlc3RlcHBlZCBvdmVyIHdoaWxlIHRoaXMgdGVzdGZpbGUgdHJpZXMgdG8gZW5zdXJlIG5v
CisjIHNpbmdsZXN0ZXBwaW5nIG9jY3VycyBmb3IgdGhlIHdhdGNocG9pbnRzLgorZGVsZXRlX2Jy
ZWFrcG9pbnRzCisKK2dkYl90ZXN0ICJzZXQgZGVidWcgaW5mcnVuIDEiCitnZGJfdGVzdCAic2hv
dyBkZWJ1ZyBpbmZydW4iICJJbmZlcmlvciBkZWJ1Z2dpbmcgaXMgMVxcLiIKKworZ2RiX3Rlc3Qg
IndhdGNoICpwIiAiYXJkd2FyZSB3YXRjaHBvaW50IDI6IFxcXCpwIgorZ2RiX3Rlc3QgIndhdGNo
ICoqcHAiICJhcmR3YXJlIHdhdGNocG9pbnQgMzogXFxcKlxcXCpwcCIKK3NldCB0ZXN0ICJjYXRj
aCAqcCIKKworc2V0IGMoMCkgW2xpc3QgKnAgMiA8dW5yZWFkYWJsZT4gMl0KK2dkYl93YXRjaF90
ZXN0IGMKKworc2V0IGMoMCkgW2xpc3QgKnAgMiAyIDNdCitnZGJfd2F0Y2hfdGVzdCBjCisKK3Nl
dCBjKDApIFtsaXN0ICpwIDIgMyA0XQorZ2RiX3dhdGNoX3Rlc3QgYworCitzZXQgYygwKSBbbGlz
dCAqKnBwIDMgPHVucmVhZGFibGU+IDRdCitnZGJfd2F0Y2hfdGVzdCBjCisKK3NldCBjKDApIFts
aXN0ICpwIDIgNCA1XQorc2V0IGMoMSkgW2xpc3QgKipwcCAzIDQgNV0KK2dkYl93YXRjaF90ZXN0
IGMKK3Vuc2V0IGMKKworc2V0IGMoMCkgW2xpc3QgKipwcCAzIDUgPHVucmVhZGFibGU+XQorZ2Ri
X3dhdGNoX3Rlc3QgYworCitzZXQgYygwKSBbbGlzdCAqcCAyIDUgNl0KK2dkYl93YXRjaF90ZXN0
IGMKKworc2V0IGMoMCkgW2xpc3QgKnAgMiA2IDx1bnJlYWRhYmxlPl0KK2dkYl93YXRjaF90ZXN0
IGMKKworc2V0IGMoMCkgW2xpc3QgKnAgMiA8dW5yZWFkYWJsZT4gN10KK2dkYl93YXRjaF90ZXN0
IGMKKworc2V0IGMoMCkgW2xpc3QgKnAgMiA3IDhdCitnZGJfd2F0Y2hfdGVzdCBjCisKK3NldCBj
KDApIFtsaXN0ICpwIDIgOCA5XQorZ2RiX3dhdGNoX3Rlc3QgYworCitzZXQgYygwKSBbbGlzdCAq
KnBwIDMgPHVucmVhZGFibGU+IDldCitnZGJfd2F0Y2hfdGVzdCBjCisKK3NldCBjKDApIFtsaXN0
ICpwIDIgOSAxMF0KK3NldCBjKDEpIFtsaXN0ICoqcHAgMyA5IDEwXQorZ2RiX3dhdGNoX3Rlc3Qg
YwordW5zZXQgYworCitzZXQgYygwKSBbbGlzdCAqcCAyIDEwIDExXQorc2V0IGMoMSkgW2xpc3Qg
KipwcCAzIDEwIDExXQorZ2RiX3dhdGNoX3Rlc3QgYwordW5zZXQgYwotLSAKMS42LjUuMgoK
</data>

          </attachment>
      

    </bug>

</bugzilla>