Merge branch 'master' into ppp-new

This commit is contained in:
Sylvain Rochet 2013-04-25 00:36:12 +02:00
commit 3fe5a99dab
12 changed files with 28 additions and 15 deletions

View File

@ -145,6 +145,18 @@ HISTORY
++ Bugfixes:
2013-04-24: patch by Liam <morepork>
api_msg.c: patch #8008 Fix a potential null pointer dereference in assert
2013-04-24: Simon Goldschmidt
* igmp.c: fixed possible division by zero
2013-04-24: Simon Goldschmidt
* ip6.h, some ipv6 C files: fixed bug #38526 Coverity: Recursive Header Inclusion in ip6.h
2013-04-24: Simon Goldschmidt (patch by Emil Ljungdahl):
* netif.c: fixed bug #38586 netif_loop_output() "deadlocks"
2013-01-15: Simon Goldschmidt
* ip4.c: fixed bug #37665 ip_canforward operates on address in wrong byte order

View File

@ -46,11 +46,7 @@ features of Savannah help us not lose users' input.
4. Do not file a bug and post a fix to it to the patch area. Either a bug report
or a patch will be enough.
If you correct an existing bug then attach the patch to the bug rather than creating a new entry in the patch area.
5. Trivial patches (compiler warning, indentation and spelling fixes or anything obvious which takes a line or two)
can go to the lwip-users list. This is still the fastest way of interaction and the list is not so crowded
as to allow for loss of fixes. Putting bugs on Savannah and subsequently closing them is too much an overhead
for reporting a compiler warning fix.
6. Patches should be specific to a single change or to related changes.Do not mix bugfixes with spelling and other
5. Patches should be specific to a single change or to related changes.Do not mix bugfixes with spelling and other
trivial fixes unless the bugfix is trivial too.Do not reorganize code and rename identifiers in the same patch you
change behaviour if not necessary.A patch is easier to read and understand if it's to the point and short than
if it's not to the point and long :) so the chances for it to be applied are greater.

View File

@ -222,11 +222,12 @@ recv_tcp(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err)
LWIP_ASSERT("recv_tcp must have a pcb argument", pcb != NULL);
LWIP_ASSERT("recv_tcp must have an argument", arg != NULL);
conn = (struct netconn *)arg;
LWIP_ASSERT("recv_tcp: recv for wrong pcb!", conn->pcb.tcp == pcb);
if (conn == NULL) {
return ERR_VAL;
}
LWIP_ASSERT("recv_tcp: recv for wrong pcb!", conn->pcb.tcp == pcb);
if (!sys_mbox_valid(&conn->recvmbox)) {
/* recvmbox already deleted */
if (p != NULL) {

View File

@ -701,7 +701,7 @@ igmp_start_timer(struct igmp_group *group, u8_t max_time)
}
#ifdef LWIP_RAND
/* ensure the random value is > 0 */
group->timer = (LWIP_RAND() % (max_time - 1)) + 1;
group->timer = (LWIP_RAND() % max_time);
#endif /* LWIP_RAND */
}

View File

@ -51,6 +51,7 @@
#include "lwip/netif.h"
#include "lwip/nd6.h"
#include "lwip/mld6.h"
#include "lwip/ip.h"
#include "lwip/stats.h"
#include <string.h>

View File

@ -44,6 +44,7 @@
#include "lwip/ip6.h"
#include "lwip/icmp6.h"
#include "lwip/nd6.h"
#include "lwip/ip.h"
#include "lwip/pbuf.h"
#include "lwip/memp.h"

View File

@ -50,6 +50,7 @@
#include "lwip/icmp6.h"
#include "lwip/ip6.h"
#include "lwip/ip6_addr.h"
#include "lwip/ip.h"
#include "lwip/inet_chksum.h"
#include "lwip/pbuf.h"
#include "lwip/netif.h"

View File

@ -55,6 +55,7 @@
#include "lwip/netif.h"
#include "lwip/icmp6.h"
#include "lwip/mld6.h"
#include "lwip/ip.h"
#include "lwip/stats.h"
#include <string.h>

View File

@ -719,7 +719,7 @@ netif_loop_output(struct netif *netif, struct pbuf *p,
for (last = r; last->next != NULL; last = last->next);
SYS_ARCH_PROTECT(lev);
if(netif->loop_first != NULL) {
if (netif->loop_first != NULL) {
LWIP_ASSERT("if first != NULL, last must also be != NULL", netif->loop_last != NULL);
netif->loop_last->next = r;
netif->loop_last = last;
@ -735,7 +735,7 @@ netif_loop_output(struct netif *netif, struct pbuf *p,
#if LWIP_NETIF_LOOPBACK_MULTITHREADING
/* For multithreading environment, schedule a call to netif_poll */
tcpip_callback((tcpip_callback_fn)netif_poll, netif);
tcpip_callback_with_block((tcpip_callback_fn)netif_poll, netif, 0);
#endif /* LWIP_NETIF_LOOPBACK_MULTITHREADING */
return ERR_OK;

View File

@ -1377,9 +1377,9 @@ void
tcp_keepalive(struct tcp_pcb *pcb)
{
struct pbuf *p;
#if CHECKSUM_GEN_TCP
#if CHECKSUM_GEN_TCP
struct tcp_hdr *tcphdr;
#endif /* CHECKSUM_GEN_TCP */
#endif /* CHECKSUM_GEN_TCP */
LWIP_DEBUGF(TCP_DEBUG, ("tcp_keepalive: sending KEEPALIVE probe to "));
ipX_addr_debug_print(PCB_ISIPV6(pcb), TCP_DEBUG, &pcb->remote_ip);
@ -1394,12 +1394,12 @@ tcp_keepalive(struct tcp_pcb *pcb)
("tcp_keepalive: could not allocate memory for pbuf\n"));
return;
}
#if CHECKSUM_GEN_TCP
#if CHECKSUM_GEN_TCP
tcphdr = (struct tcp_hdr *)p->payload;
tcphdr->chksum = ipX_chksum_pseudo(PCB_ISIPV6(pcb), p, IP_PROTO_TCP, p->tot_len,
&pcb->local_ip, &pcb->remote_ip);
#endif /* CHECKSUM_GEN_TCP */
#endif /* CHECKSUM_GEN_TCP */
TCP_STATS_INC(tcp.xmit);
/* Send output to IP */

View File

@ -45,7 +45,7 @@
#if LWIP_IPV6 /* don't build if not configured for use in lwipopts.h */
#include "lwip/ip.h"
//#include "lwip/ip.h"
#include "lwip/ip6_addr.h"
#include "lwip/def.h"
#include "lwip/pbuf.h"

View File

@ -233,7 +233,7 @@ struct tcp_pcb {
u16_t snd_buf; /* Available buffer space for sending (in bytes). */
#define TCP_SNDQUEUELEN_OVERFLOW (0xffffU-3)
u16_t snd_queuelen; /* Available buffer space for sending (in tcp_segs). */
u16_t snd_queuelen; /* Available buffer space for sending (in pbufs). */
#if TCP_OVERSIZE
/* Extra bytes available at the end of the last pbuf in unsent. */