[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [lwip-devel] Possibly falsely triggered LWIP_ASSERT?
From: |
Bill Auerbach |
Subject: |
RE: [lwip-devel] Possibly falsely triggered LWIP_ASSERT? |
Date: |
Tue, 29 Sep 2009 11:02:31 -0400 |
>Looking at pbuf_realloc() there is one thing there that worries me:
>Line 342:
> q->tot_len += (u16_t)grow;
>
>We're casting grow (which is negative in the shrinking case) to a u16_t.
>I think this should be case to a s16_t to preserve the sign of grow, and
>correctly handle increasing and decreasing the size. Does anyone
>disagree - if I'm missing something I'd like to know. This could
>explain the problem you're seeing if pbuf_realloc() had been called
>earlier on. It's certainly worth trying with that change.
Because tot_len and grow (via casting) are u16_t, there is no problem here -
no sign extension can occur. If tot_len were larger, this would be a bug.
In order to be "righter" this should be a cast to s_16t. The compiler
output will be unchanged by this change.
Bill