Commit Graph

6209 Commits

Author SHA1 Message Date
Shawn Silverman
5d32779c1b Fix stats_display_memp() to avoid accessing NULLs
It's possible for pool pointers to be NULL.

Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
2026-05-12 20:37:12 +02:00
Samuel Martin
13d7ac3363 ip4: tcp: send zero IP_ID for small packets
... especially the TCP control ones (SYNACK, RST, etc).

This change makes the system useless as a zombie machine in idle-scan
attempts.

This approach is inspired by what is done in other network stack (such
as the linux kernel one).

This approach is a low-cost CPU solution, compared to generating a
random IP ID value for every single IP packet.

See patch #10270

Signed-off-by: Samuel Martin <samuel.martin@netatmo.com>
Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
2026-05-12 20:24:42 +02:00
Samuel Martin
ad897db7ea ip4: Add IP4_MIN_MTU_LENGTH definition
See patch #10270

Signed-off-by: Samuel Martin <samuel.martin@netatmo.com>
Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
2026-05-12 18:52:47 +02:00
Samuel Martin
afb07bb12f ip4: Add IP_MIN_FRAG_LENGTH definition
Also uses it in the IPH_OFFSET_BYTES definition.
See patch #10270

Signed-off-by: Samuel Martin <samuel.martin@netatmo.com>
Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
2026-05-12 18:52:47 +02:00
William Lin
aab56d21f0 patch #10206: Fixed Signed/Unsigned Comparison Warning
Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
2026-05-08 22:38:09 +02:00
Simon Goldschmidt
d82e428723 httpd: fix compiling last commit with LWIP_HTTPD_HEADERS_BEFORE_FILE_OPEN==0 2026-05-08 21:54:16 +02:00
Mike Kleshov
5a0007f083 httpd: Add callbacks for GET header processing 2026-04-16 16:11:03 +03:00
Sebastian Huber
4599f551de dhcp: Clear flags
Do not assume that mem_malloc() returns cleared memory.
2025-08-03 11:35:52 +02:00
Sergey Fionov
41a36098b3 tcp: Fix TCP timestamps for big-endian systems
Current parsing code is building reverse-order integer, and then calls htonl()
to assign right value to "ts_recent" field of pcb.

This works correctly on little-endian machines, where htonl() reverses bytes.
However, on big-endian machines, htonl() is no-op, so bytes stay reversed.

This patch fixes it by building non-reversed integer.
2025-08-03 11:33:53 +02:00
David Cermak
e7ab7e0773 autoip: Choose next address after rate limit
AutoIP now selects a new address after rate limit timeout,
AutoIP tries a new address by incrementing the tried_llipaddr counter
in the ACD_DECLINE case of the callback.

In lwIP pre-2.2.0, address conflict detection was handled within autoip.c, and
the incrementing happened in autoip_restart() (line 150). When ACD was
extracted into a separate module in 2.2.0, this increment was missing for the
rate-limiting path.

Without this change, devices continuously retry the same IP address after rate
limiting, causing them to fail Bonjour Conformance Tests.
2025-08-03 11:24:55 +02:00
Jerome Forissier
b1edb7780f tftp: bind to TFTP port only when in server mode
The TFTP app should not bind to the TFTP server port when configured as
a client. Instead, the local port should be chosen from the dynamic
range (49152 ~ 65535) so that if the application is stopped and started
again, the remote server will not consider the new packets as part of
the same context (which would cause an error since a new RRQ would be
unexpected).

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-07-15 22:09:27 +02:00
Simon Goldschmidt
56b29f8bcf ip4_frag/ip6_frag: fix potential NULL-pointer access on memory errors 2025-06-03 21:04:39 +02:00
Alexey Lapshin
571c46253f src/core: fix gcc analyzer warning
Make ip4_addr_isany check first to avoid warning:
"check of 'ipaddr' for NULL after already dereferencing it [-Werror=analyzer-deref-before-check]"
2025-05-26 19:10:03 +02:00
Mike Kleshov
ca0395c5ae Revert "Apply patch #10511: remove code with no effect in httpd.c"
This reverts commit f877b457a1.
2025-04-02 10:22:43 +03:00
MinghaoWang
31d8988f89 Apply patch #10358: preserve dhcp memory type flag 2025-03-21 22:34:52 +03:00
Mike Kleshov
f877b457a1 Apply patch #10511: remove code with no effect in httpd.c 2025-03-21 19:35:05 +03:00
Mike Kleshov
6c8874bf5d Apply patch #10047: HTTP11_CONNECTIONKEEPALIVE2 not needed any more 2025-03-21 19:25:31 +03:00
Oswin Bult
8459488006 Apply patch #10406: simplify sign extension 2025-03-21 18:48:50 +03:00
Jarno Malmari
e55896319b Fix compilation with LWIP_DEBUG
Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
2025-02-24 21:52:41 +01:00
Simon Goldschmidt
554e104095 next release will probably be 2.2.2 2025-02-06 08:34:57 +01:00
Simon Goldschmidt
77dcd25a72 Prepare 2.2.1 release 2025-02-05 20:38:17 +01:00
Jan Breuer
5ee5801c2c snmp: remove unused prev field from snmp_varbind 2024-11-29 18:26:07 +01:00
Jan Breuer
f05e20101e snmp: remove handling of varbind->prev because it is never used
No code in snmp traverses varbinds backwards so prev is never used.
This also fixes false positive dangling pointer detection by GCC.
2024-11-29 18:26:07 +01:00
Jan Breuer
52bb3eedd7 snmp: fix dangling pointer in snmp_traps 2024-11-29 18:26:07 +01:00
Erik Ekman
3cae475d63 apps/snmp: Remove @retval tags on void methods
Fixing clang 19.1.0 error:
src/apps/snmp/snmp_traps.c:140:15: error: empty paragraph passed to '@retval' command [-Werror,-Wdocumentation]
2024-11-26 23:45:57 +01:00
jeans
86c9f79991 refactor: added apple macro for fs handling 2024-05-14 13:53:42 +02:00
Simon Goldschmidt
d0efd9ef7b tcpip: fix that TCPIP_CORE_LOCK is not released for LWIP_TIMERS==0
See bug #65328

Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
2024-02-19 21:44:18 +01:00
Krzysztof Mazur
e799c266fa makefsdata: extend file type matching with .shtml and .shtm
[Problem]
When using makefsdata perl script to convert shtml files with SSI tags
the shtml files get generated with text/plain content type, making
browsers not render them correctly

[Solution]
Extend the regex to generate text/html content type for any of:
.htm, .html, .shtm, .shtml extensions
2024-02-19 20:58:58 +01:00
Kirill Lokotkov
93821fc437 Fixed netdb.c when LWIP_SOCKET_HAVE_SA_LEN == 0
Fields sin6_len and sin_len are always used in the file but not all implementations of sockaddr_in or sockaddr_in6 have this fields (including Linux implementation).
Added #if-check to avoid compilation errors in such cases.
2024-02-19 18:13:28 +01:00
Kirill Lokotkov
7c494b3829 Added "lwip/errno.h" to netdb.c includes
Defines EINVAL and ERANGE are used in the file but not included directly. When I try to use <sys/socket.h> and <arpa/inet.h> as LWIP_SOCKET_EXTERNAL_HEADERS it causes errors with this defines.
2024-02-19 18:13:28 +01:00
Simon Goldschmidt
347054b329 Fix C++ compatibility of newly added function lwip_memcmp_consttime() 2024-01-09 21:26:40 +01:00
Simon Goldschmidt
c167a54540 ppp: use constant-time memcmp for checking credentials
See #65119
2024-01-09 21:23:11 +01:00
Simon Goldschmidt
25de99d1c1 Introduce constant-time memcmp and use it for snmpv3_get_engine_boots
See #65118
2024-01-09 21:14:49 +01:00
Simon Goldschmidt
09d929f7ff Fix uninitialized variable warning introduced with last commit
(at least reported by MS-VS C compiler)
2024-01-09 20:51:10 +01:00
Renzo Davoli
83abc8714c avoid callbacks for unsuccessful lwip_accept
See bug #64780
2024-01-09 20:45:05 +01:00
Simon Goldschmidt
09188668c7 update tinydir.h to newest version (1.2.6)
Update to cxong/tinydir version 1.2.6 commit 8124807 ("Fix buffer overflow in tinydir_file_open with long path names")

Although we're not affected of this bug, prevent others copying from our repo being affected...
2024-01-04 22:00:56 +01:00
Simon Goldschmidt
b413b04093 makefsdata: fix buffer corruption with very long paths
See bug #64941
2023-11-29 22:03:46 +01:00
Simon Goldschmidt
ee1523630a httpc with LWIP_HTTPC_HAVE_FILE_IO: fix heap buffer overflow for long local filenames
See bug #64940
2023-11-29 21:35:38 +01:00
Erik Ekman
5e3268cf3e src/core: Fix speling issues
Found by codespell
2023-10-14 18:16:49 +02:00
Erik Ekman
5e45328bb5 src/apps: Fix speling issues
Found by codespell
2023-10-14 18:08:00 +02:00
Erik Ekman
b6b20613ce src/api: Fix speling issues
Found by codespell
2023-10-14 18:04:35 +02:00
Erik Ekman
3c06267d8e apps/http_client: Fix speling issues
Found by codespell
2023-10-14 17:51:01 +02:00
Erik Ekman
0ab52ff447 PPP: Fix speling issues
Found by codespell
2023-10-14 17:51:01 +02:00
Florian La Roche
670a2f0827 Fix typos
From patch #10399
2023-10-14 17:34:13 +02:00
Simon Goldschmidt
1eeb70fbfa dhcp: fix memory corruption when LWIP_DHCP_MAX_DNS_SERVERS > DNS_MAX_SERVERS
see patch #10124
2023-10-12 22:08:14 +02:00
Simon Goldschmidt
b9ca1deba8 Fix building with ISO C90
This fixes the changes of commit 574bd6e5aa
2023-10-12 21:41:49 +02:00
Simon Goldschmidt
efe78e7e5b pbuf_cat: add a simple check to ensure we don't cat the same pbuf to itself 2023-10-12 21:34:11 +02:00
David Fries
35cbad52cc Document that sntp_setservername doesn't copy the string
I was expecting the string to be duplicated, doing a Google search
shows others did as well.
2023-10-12 21:04:11 +02:00
duckpowerMB
574bd6e5aa tcp_in : fix ooseq update error
if a pbuf received with the same seqno in ooseq ,
we then check  the size and replace the existing one
with the larger one,but if the existing one is the
last segment in ooseq ,it might has been trimed before.
the replacing action will overrun our receive windows

see patch #10106 and bug #56397
2023-10-12 21:00:21 +02:00
Thomas Kindler
de0b97861a Fix bug #60681: Initialize custom data in pbuf struct
Add a #define that users can use to initialize LWIP_PBUF_CUSTOM_DATA fields.

see patch #10072
idea by Thomas Kindler <mail_lwip@t-kindler.de>
2023-10-12 20:29:16 +02:00