diff --git a/CHANGELOG b/CHANGELOG index cbf0edf0..b457e9b6 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -66,7 +66,11 @@ HISTORY * api_lib.c: Use memcpy in netbuf_copy_partial. ++ Bug fixes: - + + 2007-03-20 Kieran Mansley + * udp.c: Only try and use pbuf_header() to make space for headers if + not a ROM or REF pbuf. + 2007-03-19 Frédéric Bernon * api_msg.h, api_msg.c, tcpip.h, tcpip.c: Add return types to tcpip_apimsg() and api_msg_post(). diff --git a/src/core/udp.c b/src/core/udp.c index 6f3de7be..51daba7c 100644 --- a/src/core/udp.c +++ b/src/core/udp.c @@ -319,7 +319,7 @@ udp_send(struct udp_pcb *pcb, struct pbuf *p) } /* not enough space to add an UDP header to first pbuf in given p chain? */ - if (pbuf_header(p, UDP_HLEN)) { + if (p->flags == PBUF_FLAG_ROM || p->flags == PBUF_FLAG_REF || pbuf_header(p, UDP_HLEN)) { /* allocate header in a seperate new pbuf */ q = pbuf_alloc(PBUF_IP, UDP_HLEN, PBUF_RAM); /* new header pbuf could not be allocated? */