[haiku-bugs] Re: [Haiku] #12549: KDL booting hrev49947 x86_gcc2

  • From: "waddlesplash" <trac@xxxxxxxxxxxx>
  • Date: Fri, 01 Jan 2016 16:15:28 -0000

#12549: KDL booting hrev49947 x86_gcc2
----------------------------+----------------------------
   Reporter:  kim1963       |      Owner:  waddlesplash
       Type:  bug           |     Status:  assigned
   Priority:  high          |  Milestone:  R1/beta1
  Component:  Drivers/ACPI  |    Version:  R1/Development
 Resolution:                |   Keywords:
 Blocked By:                |   Blocking:
Has a Patch:  0             |   Platform:  x86
----------------------------+----------------------------

Comment (by waddlesplash):

 A friend of mine who knows more about assembly than I do actually spent
 some time looking at this. Here's what he sent me:

Here is what I discovered to be true, looking at the backtrace and the
 disassembly:

1. In AcpiNsBuildNormalizedPath() %esi is used for the variable
 NextNode.

2. In the stack trace %esi=0x656d5f6c looks suspiciously like it is a
 pointer loaded after a buffer overrun.  The ascii would be 'l_me'

3. It is unlikely that the parameter, Node, is bad, because the caller
 used a handle validate routine.

4. When walking the tree, NextNode is loaded from each .Parent in turn.
 This means that one of the .Parents is bad.

5. %edi is used for the variable Length.  At the time of the stack
 trace, it is 0xa.  I think that means that it walked up at least two nodes
 before it hit the bad one.

6. Inserting a little debugging code right there might help provide a
 clue to track down the problem.  if (NextNode==0x656d5f6c), then you want
 to dump what is at FullPath so far, and then panic.  Better yet, start at
 Node, and walk forward, dumping each block [Node,sizeof(*Node)].

--
Ticket URL: <https://dev.haiku-os.org/ticket/12549#comment:11>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: