zephyr/net/ip/contiki/ipv4
Rohit Grover f809c84de2 net: fix a potential refcount leak of SYN buffers
net_send() is meant to release the refcount for the SYN buffer once
a connection is established, but this assumes that the application
uses net_send() for all outgoing buffers. It is possible to setup a
connection (and therefore generate an outgoing SYN) by calling
net_context_tcp_init(), which has the side-effect of overwriting
connection_status . Using such an API would then break the
assumption around net_send() reclaiming the refcount of the SYN buf.

A test case which exposes the problem:
* As a client, setup a connection with an HTTP server.
* Send an HTTP request contained in a buf using net_send()
* The server responds, and then tears down the connection.
* The test client then re-establishes another connection using
  net_context_tcp_init()--this overwrites connection_status, causing
  a refcount leak.

With this change, we remove the dependency on net_send() being called.

Change-Id: I96516cbca3e231ed7fb509a7c03c0ceebf80e03a
Signed-off-by: Rohit Grover <rohit.grover@arm.com>
2016-10-08 21:20:28 +00:00
..
uip-neighbor.c net: Fix the include paths in Contiki sources 2016-02-05 20:24:46 -05:00
uip-neighbor.h net: Fix the include paths in Contiki sources 2016-02-05 20:24:46 -05:00
uip.c net: fix a potential refcount leak of SYN buffers 2016-10-08 21:20:28 +00:00
uip_arp.c net: ip: Enable Kconfig based debug options for the IP stack 2016-02-25 11:03:55 +00:00
uip_arp.h net: Fix the include paths in Contiki sources 2016-02-05 20:24:46 -05:00