Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of lwip by
Revision 14:6f5eba4163ea, committed 2013-09-28
- Comitter:
- khayakawa
- Date:
- Sat Sep 28 16:11:28 2013 +0000
- Parent:
- 11:91a59b58ce8d
- Commit message:
- KEIS
Changed in this revision
diff -r 91a59b58ce8d -r 6f5eba4163ea core/dhcp.c --- a/core/dhcp.c Sat Sep 28 15:58:36 2013 +0000 +++ b/core/dhcp.c Sat Sep 28 16:11:28 2013 +0000 @@ -115,7 +115,7 @@ #define DHCP_OPTION_IDX_T2 5 #define DHCP_OPTION_IDX_SUBNET_MASK 6 #define DHCP_OPTION_IDX_ROUTER 7 -#define DHCP_OPTION_IDX_DNS_SERVER 8 +#define DHCP_OPTION_IDX_DNS_SERVER 8 #define DHCP_OPTION_IDX_MAX (DHCP_OPTION_IDX_DNS_SERVER + DNS_MAX_SERVERS) /** Holds the decoded option values, only valid while in dhcp_recv. @@ -564,7 +564,7 @@ #if LWIP_DNS /* DNS servers */ n = 0; - while(dhcp_option_given(dhcp, DHCP_OPTION_IDX_DNS_SERVER + n) && (n < DNS_MAX_SERVERS)) { + while((n < DNS_MAX_SERVERS) && dhcp_option_given(dhcp, DHCP_OPTION_IDX_DNS_SERVER + n)) { ip_addr_t dns_addr; ip4_addr_set_u32(&dns_addr, htonl(dhcp_get_option_value(dhcp, DHCP_OPTION_IDX_DNS_SERVER + n))); dns_setserver(n, &dns_addr); @@ -975,7 +975,7 @@ ip_addr_copy(gw_addr, dhcp->offered_gw_addr); /* gateway address not given? */ - if (ip_addr_isany(&gw_addr)) { + if (gw_addr.addr == IPADDR_ANY) { /* copy network address */ ip_addr_get_network(&gw_addr, &dhcp->offered_ip_addr, &sn_mask); /* use first host address on network as gateway */ @@ -1678,9 +1678,13 @@ ip_addr_set_zero(&dhcp->msg_out->yiaddr); ip_addr_set_zero(&dhcp->msg_out->siaddr); ip_addr_set_zero(&dhcp->msg_out->giaddr); - for (i = 0; i < DHCP_CHADDR_LEN; i++) { - /* copy netif hardware address, pad with zeroes */ - dhcp->msg_out->chaddr[i] = (i < netif->hwaddr_len) ? netif->hwaddr[i] : 0/* pad byte*/; + for (i = 0; i < netif->hwaddr_len; i++) { + /* copy netif hardware address */ + dhcp->msg_out->chaddr[i] = netif->hwaddr[i]; + } + for ( ; i < DHCP_CHADDR_LEN; i++) { + /* ... pad rest with zeroes */ + dhcp->msg_out->chaddr[i] = 0; } for (i = 0; i < DHCP_SNAME_LEN; i++) { dhcp->msg_out->sname[i] = 0;
diff -r 91a59b58ce8d -r 6f5eba4163ea core/ipv4/ip.c --- a/core/ipv4/ip.c Sat Sep 28 15:58:36 2013 +0000 +++ b/core/ipv4/ip.c Sat Sep 28 16:11:28 2013 +0000 @@ -400,7 +400,7 @@ /* broadcast or multicast packet source address? Compliant with RFC 1122: 3.2.1.3 */ #if IP_ACCEPT_LINK_LAYER_ADDRESSING /* DHCP servers need 0.0.0.0 to be allowed as source address (RFC 1.1.2.2: 3.2.1.3/a) */ - if (check_ip_src && !ip_addr_isany(¤t_iphdr_src)) + if (check_ip_src && current_iphdr_src.addr != IPADDR_ANY) #endif /* IP_ACCEPT_LINK_LAYER_ADDRESSING */ { if ((ip_addr_isbroadcast(¤t_iphdr_src, inp)) || (ip_addr_ismulticast(¤t_iphdr_src))) {
diff -r 91a59b58ce8d -r 6f5eba4163ea core/netif.c --- a/core/netif.c Sat Sep 28 15:58:36 2013 +0000 +++ b/core/netif.c Sat Sep 28 16:11:28 2013 +0000 @@ -318,6 +318,12 @@ void netif_set_ipaddr(struct netif *netif, ip_addr_t *ipaddr) { + /* Protect against dereferencing NULL pointers by + treating like ANY, as does ip_addr_set() */ + if (!ipaddr) { + ipaddr = IP_ADDR_ANY; + } + /* TODO: Handling of obsolete pcbs */ /* See: http://mail.gnu.org/archive/html/lwip-users/2003-03/msg00118.html */ #if LWIP_TCP
diff -r 91a59b58ce8d -r 6f5eba4163ea core/pbuf.c --- a/core/pbuf.c Sat Sep 28 15:58:36 2013 +0000 +++ b/core/pbuf.c Sat Sep 28 16:11:28 2013 +0000 @@ -998,6 +998,8 @@ } err = pbuf_copy(q, p); LWIP_ASSERT("pbuf_copy failed", err == ERR_OK); + /* next line references err variable even if LWIP_ASSERT is ignored. */ + (void)err; pbuf_free(p); return q; }
diff -r 91a59b58ce8d -r 6f5eba4163ea lwipopts.h --- a/lwipopts.h Sat Sep 28 15:58:36 2013 +0000 +++ b/lwipopts.h Sat Sep 28 16:11:28 2013 +0000 @@ -27,16 +27,18 @@ #if NO_SYS == 0 #include "cmsis_os.h" +#define SYS_LIGHTWEIGHT_PROT 1 + #define LWIP_RAW 0 -#define TCPIP_MBOX_SIZE 6 -#define DEFAULT_TCP_RECVMBOX_SIZE 6 -#define DEFAULT_UDP_RECVMBOX_SIZE 6 -#define DEFAULT_RAW_RECVMBOX_SIZE 6 -#define DEFAULT_ACCEPTMBOX_SIZE 6 +#define TCPIP_MBOX_SIZE 8 +#define DEFAULT_TCP_RECVMBOX_SIZE 8 +#define DEFAULT_UDP_RECVMBOX_SIZE 8 +#define DEFAULT_RAW_RECVMBOX_SIZE 8 +#define DEFAULT_ACCEPTMBOX_SIZE 8 #define TCPIP_THREAD_STACKSIZE 1024 -#define TCPIP_THREAD_PRIO 1 +#define TCPIP_THREAD_PRIO (osPriorityNormal) #define DEFAULT_THREAD_STACKSIZE 512 @@ -99,6 +101,7 @@ #define MEMP_OVERFLOW_CHECK 1 #define MEMP_SANITY_CHECK 1 #else +#define LWIP_NOASSERT 1 #define LWIP_STATS 0 #endif
diff -r 91a59b58ce8d -r 6f5eba4163ea netif/ppp/pap.c --- a/netif/ppp/pap.c Sat Sep 28 15:58:36 2013 +0000 +++ b/netif/ppp/pap.c Sat Sep 28 16:11:28 2013 +0000 @@ -218,7 +218,7 @@ u->us_unit, u->us_timeouttime, u->us_clientstate)); if (u->us_clientstate != UPAPCS_AUTHREQ) { - UPAPDEBUG(LOG_INFO, ("upap_timeout: not in AUTHREQ state!\n")); + UPAPDEBUG(LOG_INFO, ("upap_timeout: not in AUTHREQ state!\n")); return; }