Commit Graph

4887 Commits

Author SHA1 Message Date
goldsimon
a13c488e52 Fix bug #51687 (tcp_close(): is it OK to return ERR_MEM if TF_CLOSEPEND is set?)
(cherry picked from commit 1d4ca0bff6)

# Conflicts:
#	src/core/tcp.c
2017-09-15 13:19:11 +02:00
goldsimon
e8a3d42e2d Fix bug #51937 by checking TF_CLOSED at the end of all pcb callbacks in tcp_input()
(cherry picked from commit 86abfbe087)
2017-09-15 12:59:58 +02:00
goldsimon
66120f7d79 refactor tcp_input a bit in preparation of a fix for bug #51937
(cherry picked from commit a8ac37f419)

# Conflicts:
#	src/core/tcp_in.c
2017-09-15 12:59:57 +02:00
goldsimon
1d04b06450 Fixed bugs #51606 and #51535: IPv4 reassembly could be finished although there are holes
(cherry picked from commit 5ea7f507c3)

# Conflicts:
#	test/unit/Filelists.mk
#	test/unit/lwipopts.h
2017-09-15 12:52:40 +02:00
goldsimon
c51e6fbb12 Fixed bug #51623: DHCP request XID should probably be regenerated for INIT-REBOOT
(cherry picked from commit a81b19aa62)
2017-09-15 12:52:19 +02:00
goldsimon
9b19266e3d ip4_reass: fixed bug #51596 (Insufficient overlap check)
(cherry picked from commit 500598658d)
2017-09-15 12:52:18 +02:00
goldsimon
a2ac9b045a ip4_reass: fixed bug #51597 (Last fragment is assumed to have arrived even if it was discarded)
(cherry picked from commit 3dedfa3d1f)

# Conflicts:
#	src/core/ipv4/ip4_frag.c
2017-09-15 12:52:17 +02:00
goldsimon
737ed228c9 ip4_reass: fixed bug #51595 (ip_reass_pbufcount may be updated incorectly)
(cherry picked from commit f1072fee8a)

# Conflicts:
#	src/core/ipv4/ip4_frag.c
2017-09-15 12:52:04 +02:00
Matthias Hofmann
82e5a18b50 Fix using DHCP IP configuration after lease time is expired.
Signed-off-by: goldsimon <goldsimon@gmx.de>
(cherry picked from commit 9b06d71aeb)
2017-09-15 12:50:08 +02:00
Pascal Quantin
ac880ea907 Fixed bug #51528 (Bug when parsing WND_SCALE option)
Signed-off-by: goldsimon <goldsimon@gmx.de>
(cherry picked from commit 2e78b6dcae)
2017-09-15 12:49:51 +02:00
goldsimon
32aa50cfbc Fix sys_timeouts_init() for LWIP_TCP==0 (see patch #9375)
(cherry picked from commit 7b45f3fa3f)
2017-09-15 12:49:29 +02:00
Axel Lin
e6fa613633 tcp: Remove unreachable code in tcp_close_shutdown_fin
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Dirk Ziegelmeier <dirk@ziegelmeier.net>
(cherry picked from commit 9bbb741247)
2017-09-15 12:49:00 +02:00
Dirk Ziegelmeier
c6b19cad34 Fix bug #50932: LWIP-provided byteorder functions defined in the wrong scope
Apply suggested fix from "Fayek"
(cherry picked from commit fe8c62e7b6)
2017-09-15 12:48:47 +02:00
goldsimon
f389d78f7e Fixed bug #50838 (mem.c needs SYS_ARCH_PROTECTION around MEM_STATS)
(cherry picked from commit 3770adccfd)
2017-09-14 09:27:50 +02:00
Dirk Ziegelmeier
dced7dad41 Apply patch from Kudratov Olimjon: Array index used before limits check
while ((q != NULL) && (options[offset] != DHCP_OPTION_END) && (offset < offset_max)) {
should be
while ((q != NULL) && (offset < offset_max) && (options[offset] != DHCP_OPTION_END)) {

See https://jira.reactos.org/browse/CORE-8978 for more info.
(cherry picked from commit 32aa9a41e2)
2017-09-14 09:26:33 +02:00
goldsimon
56a295f0a0 dhcp_parse_reply: return ERR_VAL instead of asserting on offset-out-of-pbuf
(cherry picked from commit 33466ee6a8)
2017-09-14 09:23:56 +02:00
Dirk Ziegelmeier
aecb1b9eb0 Fix bug #50618: dhcp_remove_struct() macro does not work
Patch by Benjamin Silvestre

(cherry picked from commit 819224f0e5)
2017-09-14 09:20:37 +02:00
Mikhail Lappo
dbb3b3a3a1 Possible null-pointer dereference
The value should be dereferenced after
assertion is performed. This can lead
to crash

(cherry picked from commit 7eba14cb76)
2017-09-14 09:19:51 +02:00
Mikhail Lappo
77c12bb124 Possible null-pointer dereference
In assertion the pointer that is potentialy
null is dereferenced. The check for null was
located after.

(cherry picked from commit eba1b971c0)
2017-09-14 09:18:55 +02:00
Dirk Ziegelmeier
0623dc4038 Apply [patch #9287] Possible null-pointer dereference from Mikhail Lappo in a modified way
Moved the debug output to a location where we know that newpcb != NULL
Fixes possible NULL pointer dereferencing in debug message output

(cherry picked from commit 9e20fe2cfb)
2017-09-14 09:18:30 +02:00
goldsimon
f5438b1b43 try to satisfy clang's '-Wempty-body'
(cherry picked from commit aef2accfa3)
2017-09-14 09:16:42 +02:00
Dirk Ziegelmeier
1cf9fc0d39 Update doxygen version to 2.0.3 as in init.h
(cherry picked from commit 59fba75cd8)
2017-09-14 09:16:18 +02:00
goldsimon
f9872c519c memp.h: added missing include
(cherry picked from commit 3fd8440ab9)
2017-09-14 09:15:54 +02:00
Dirk Ziegelmeier
a4017a485c Fix coding style NO_SYS example code
(cherry picked from commit b9a40a5163)
2017-09-14 09:07:44 +02:00
Dirk Ziegelmeier
2490d034cd Fix starting DHCP in NO_SYS example code
(cherry picked from commit da0714d7cb)
2017-09-14 09:07:43 +02:00
goldsimon
282e85763b lwip_init(): at least IAR warns about "LWIP_UNUSED_ARG(a)" accessing an uninitialized variable... Try to fix this by initializing it (it will be optimized away anyway)
(cherry picked from commit 946b231516)
2017-09-14 09:06:34 +02:00
goldsimon
c0862d6074 Fixed LWIP_VERSION define for 2.0.2 2017-03-13 13:27:00 +01:00
goldsimon
ea2f6fb57c Add CHANGELOG for 2.0.2 2017-03-13 10:26:42 +01:00
Dirk Ziegelmeier
b307fea1b9 Rename "IPv6 mapped IPv4 addresses" to their correct name from RFC4191: "IPv4-mapped IPv6 address"
(cherry picked from commit 4d8fec3b67)

Conflicts:
	src/core/ipv6/ip6.c
2017-03-13 09:28:46 +01:00
Joel Cunningham
c31bd404e2 Fix unit test with assumed congestion avoidance
test_tcp_fast_rexmit_wraparound correctness relied on the congestion
window being in congestion avoidance so that only a single TCP_MSS
segment is sent upon ACKing the first segment.

It's not known whether the test was relying tcp_alloc() to set ssthresh
to 0 and thus start in congestion avoidance or if the test was working by
accident until changes in b90a54f989

This fixes the test by enforcing the requirement of starting in
congestion avoidance

Signed-off-by: goldsimon <goldsimon@gmx.de>
(cherry picked from commit 8bf402fd67)
2017-03-13 09:14:38 +01:00
goldsimon
0381849624 tcp unit tests: fixed that tcp_teardown() could lead to accessing a netif pointer that is not valid any more (netif added in test function stored on stack)
(cherry picked from commit e9e9ec23b8)
2017-03-13 09:14:24 +01:00
goldsimon
19d56b4096 tcp: watch out for pcb->nrtx overflows and tcp_backoff indexing overflow
(cherry picked from commit 7ffe5bfb3c)
2017-03-13 09:14:23 +01:00
David van Moolenbroek
66db517a28 tcp: do not keep sending SYNs when getting ACKs
If a locally generated TCP SYN packet is replied to with an ACK
packet, lwIP immediately sends a RST packet followed by resending the
SYN packet.  This is expected, but on loopback interfaces the resent
SYN packet may immediately get another ACK reply, typically when the
other endpoint is in TIME_WAIT state (which ignores the RSTs).  The
result is an endless loop of SYN, ACK, RST packets.

This patch applies the normal SYN retransmission limit in this
scenario, such that the endless loop is limited to a brief storm.

(cherry picked from commit 5827c168c2)
2017-03-13 09:14:22 +01:00
Joel Cunningham
2452bc9336 bug #50476: initialize ssthresh to TCP_SND_BUF
This commit changes ssthresh to be the largest effective congestion
window (amount of in-flight data). This follows the guidance of RFC
5681 which recommends setting ssthresh arbitrarily high.

LwIP was previously using the receive window value at the end of the
3-way handshake and in the case of an active open where the receiver
used window scaling and/or window auto-tuning, this resulted in a very
small ssthresh value even though the window ramped up once the connection
was established

(cherry picked from commit b90a54f989)
2017-03-13 09:13:41 +01:00
Sylvain Rochet
2848b17e80 PPP: remove unused and confusing return values other than ERR_OK for ppp_connect and ppp_listen
User should not use ppp_connect or ppp_listen return value to retry
later, it must wait for the callback to be called. This is primarily
done this way to have a consistent behavior with and without the
holdoff feature.

Remove returned error value from PPP link level API connect and listen
callbacks because we are not using them anymore, then make ppp_connect
or ppp_listen to always return ERR_OK, thus we are not breaking the PPP
user API.

We don't need the return code here, all PPP link level drivers can't
fail at all (e.g. PPPoS) or retry if necessary (PPPoE and PPPoL2TP).

(cherry picked from commit e16d10ade6)
2017-03-13 09:13:17 +01:00
goldsimon
c71c9882c2 arch.h: include <limits.h> if it exists (at least INT_MAX is used)
(cherry picked from commit aff1935e40)
2017-03-13 09:13:07 +01:00
Dirk Ziegelmeier
40fbd6bc24 One enum icmp_te_type member is not in doxygen docs - fix it.
(cherry picked from commit 927990d94e)
2017-03-13 09:12:30 +01:00
goldsimon
df7485de1c lwip_sendmsg/tcp: prevent PSH until all iovecs are enqueued
(cherry picked from commit 1b3aaef525)
2017-03-13 09:12:08 +01:00
goldsimon
fe6e1bd4af httpd: LWIP_HTTPD_POST_MANUAL_WND: fixed double-free when httpd_post_data_recved is called nested from httpd_post_receive_data() (bug #50424)
# Conflicts:
#	CHANGELOG
2017-03-01 22:15:59 +01:00
goldsimon
168fa1c38a Fix compiling httpd for LWIP_HTTPD_SUPPORT_POST==1 (assigning int to u16_t) 2017-03-01 22:15:42 +01:00
goldsimon
f0975b3c59 make tcp apps depend on LWIP_CALLBACK_API, too 2017-03-01 22:15:18 +01:00
goldsimon
563932b888 tcp: fixed bug #50418: LWIP_EVENT_API: fix invalid calbacks for SYN_RCVD pcb
# Conflicts:
#	CHANGELOG
2017-03-01 22:15:07 +01:00
goldsimon
8849a443a4 pbuf_ref: assert-check for 'ref' overflow
(cherry picked from commit 76763c9bcd)
2017-02-27 12:31:13 +01:00
goldsimon
e318688195 Improved DNS_LOCAL_HOSTLIST interface (bug #50325)
(cherry picked from commit deaa6e9406)

Conflicts:
	CHANGELOG
2017-02-27 12:30:38 +01:00
goldsimon
fa8b6a92b4 Fix portable initialization of non-dynamic DNS_LOCAL_HOSTLIST
(cherry picked from commit 19d63e6aa0)
2017-02-27 12:30:30 +01:00
sg
2ca39c275a LWIP_NETCONN_FULLDUPLEX: fixed shutdown during write (bug #50274)
(cherry picked from commit 6dca664217)

Conflicts:
	CHANGELOG
2017-02-27 12:29:23 +01:00
Joel Cunningham
4d1d567ab7 Fix comment typo from bug #47485
tcp_close_shutdown_impl() should be tcp_close_shutdown_fin()

(cherry picked from commit 0b257f71e7)
2017-02-27 12:28:18 +01:00
goldsimon
8927cda2f8 For tiny targtes, LWIP_RAND is optional -> fix compile time checks
(cherry picked from commit 693a74c286)
2017-02-27 12:27:47 +01:00
Dirk Ziegelmeier
bc78251f4a My documentation changes forced the usage of rand() function, which is not desired
By default, the code that does NOT need LWIP_RAND() is active now

(cherry picked from commit 06c84cb110)
2017-02-27 12:27:30 +01:00
David van Moolenbroek
0a3e4cd10e tcp: fix accept event on closed listening PCBs
If LWIP_CALLBACK_API is not defined, but TCP_LISTEN_BACKLOG is, then
the LWIP_EVENT_ACCEPT TCP event may be triggered for closed listening
sockets.  This case is just as disastrous for the event API as it is
for the callback API, as there is no way for the event hook to tell
whether the listening PCB is still around.  Add the same protection
against this case for TCP_LISTEN_BACKLOG as was already in place for
LWIP_CALLBACK_API.

Also remove one NULL check for LWIP_CALLBACK_API that had already
become redundant for all callers, making the TCP_EVENT_ACCEPT code
for that callback wrapper more in line with the rest of the wrappers.

(cherry picked from commit 240cf62056)
2017-02-27 12:25:52 +01:00