Matthew Dillon wrote:
>
> I found it. The code itself is broken. I missed the lack of parens.
>
> if (m->m_len < sizeof(struct arphdr) &&
> (m = m_pullup(m, sizeof(struct arphdr)) == NULL)) {
> log(LOG_ERR, "arp: runt packet -- m_
> > I found it. The code itself is broken. I missed the lack of parens.
> >
> > if (m->m_len < sizeof(struct arphdr) &&
> > (m = m_pullup(m, sizeof(struct arphdr)) == NULL)) {
> > log(LOG_ERR, "arp: runt packet -- m_pullup failed."
On Thu, Mar 23, 2000 at 10:29:52AM -0800, Matthew Dillon wrote:
> Jim, what C flags is make using when you compile up your kernel? Are
> you trying to do weird optimizations? I don't see anything in your
> kernel config, do you have anything weird in your /etc/make.conf[.local]?
Matthew Dillon wrote:
>
> :0xc01997a7 : sete %al
> :0xc01997aa : movzbl %al,%ebxBING BING BING!
> :0xc01997ad : testl %ebx,%ebx
>
[snip]
> What the frig is this 'sete' instruction? And the movzbl ? Move byte
> to long?
>
sete is set byte if equ
:
:On Thu, Mar 23, 2000 at 12:45:07PM -0700, Nate Williams wrote:
:> Never mind, I missed the paren. However, I would have written the fix
:> as follow so I wouldn't have missed the fix. :)
:>
:> To each his own. :)
:
:so, with this fix, do you think i can consider the box stable enough for
:p
> > Never mind, I missed the paren. However, I would have written the fix
> > as follow so I wouldn't have missed the fix. :)
> >
> > To each his own. :)
>
> so, with this fix, do you think i can consider the box stable enough for
> production?
I'll let Matt answer it, but based on the back-t
On Thu, Mar 23, 2000 at 12:45:07PM -0700, Nate Williams wrote:
> Never mind, I missed the paren. However, I would have written the fix
> as follow so I wouldn't have missed the fix. :)
>
> To each his own. :)
so, with this fix, do you think i can consider the box stable enough for
production?
> I found it. The code itself is broken. I missed the lack of parens.
>
> if (m->m_len < sizeof(struct arphdr) &&
> (m = m_pullup(m, sizeof(struct arphdr)) == NULL)) {
> log(LOG_ERR, "arp: runt packet -- m_pullup failed.");
>
On Thu, Mar 23, 2000 at 12:56:35PM -0700, Nate Williams wrote:
> > so, with this fix, do you think i can consider the box stable enough for
> > production?
>
> I'll let Matt answer it, but based on the back-trace and Matt's
> sleuthing, I'd say he fixed the cause of the panic.
cool.
when he sai
I found it. The code itself is broken. I missed the lack of parens.
if (m->m_len < sizeof(struct arphdr) &&
(m = m_pullup(m, sizeof(struct arphdr)) == NULL)) {
log(LOG_ERR, "arp: runt packet -- m_pullup failed.");
Ok, lets see what we have here. %ebx is NULL at the point the code fails.
(the <-- below at c01997c8)
%ebx is the 'm' pointer.
if (m->m_len < sizeof(struct arphdr) &&
:0xc0199794 : cmpl $0x7,0xc(%ebx)
:0xc0199798 : ja 0xc01997c8
:0xc019979a : pushl
11 matches
Mail list logo