DragonFly BSD
DragonFly kernel List (threaded) for 2005-08
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: Fatal trap 12 on booting GERERIC kernel


From: Joerg Sonnenberger <joerg@xxxxxxxxxxxxxxxxx>
Date: Thu, 11 Aug 2005 11:25:48 +0200
Mail-followup-to: kernel@crater.dragonflybsd.org

On Thu, Aug 11, 2005 at 05:46:04PM +0900, YONETANI Tomokazu wrote:
> On Thu, Aug 11, 2005 at 05:20:50PM +0900, Noritoshi Demizu wrote:
> > > The latest GENERIC kernel fails to boot on my machine.
> > 
> > When I reported this problem, I chose multi user mode in my all trys.
> > 
> > I just find that, if I choose single user mode, the '#' prompt of
> > /bin/sh is successfully displayed.  And the "pwd" command successfully
> > prints "/".  But when I typed "ls", the kernel paniced in generic_bzero.
> > 
> > I did buildworld & installworld both yesterday and today.  Yesterdays'
> > GENERIC kernel works fine with both yesterdays' and today's userland.
> > But today's GENERIC kernel does not work with yesterdays' nor today's
> > userland.
> 
> Yes, I'm seeing this too, and I suspect that the calculation in
> vop_write_dirent() is wrong; I inserted a printf() before the bzero()
> and found that the second argument, or
> 
>   dp->d_reclen - offsetof(struct dirent, d_name) - dp->d_namlen,
> 
> can be negative.  Try reverting the users of vop_write_dirent()
> to the previous revisions and see if it helps.

Found it. In the full dirent tree, the equivalent of GENERIC_DIRSIZ
takes the string length directly, while GENERIC_DIRSIZ takes it from
dirent. That field wasn't initialised.

Joerg



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]