lwip-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-devel] [bug #55536] lwIP 2.1.2: netconn_delete() called twice from


From: Stanislav Pobořil
Subject: [lwip-devel] [bug #55536] lwIP 2.1.2: netconn_delete() called twice from lwip_accept()
Date: Mon, 21 Jan 2019 06:56:30 -0500 (EST)
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0

URL:
  <https://savannah.nongnu.org/bugs/?55536>

                 Summary: lwIP 2.1.2: netconn_delete() called twice from
lwip_accept()
                 Project: lwIP - A Lightweight TCP/IP stack
            Submitted by: spoboril
            Submitted on: Mon 21 Jan 2019 11:56:28 AM UTC
                Category: sockets/netconn
                Severity: 3 - Normal
              Item Group: Crash Error
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
         Planned Release: None
            lwIP version: Other

    _______________________________________________________

Details:

Below is a code snippet from lwip_accept().
If netconn_peer() fails, lwIP ends hanged in a "netconn state error" assert. I
think the reason is that netconn_delete() is called twice, once directly and
then also from free_socket().
Removing the netconn_delete() call done before the free_socket() call seems to
solve the problem for me.

    err = netconn_peer(newconn, &naddr, &port);
    if (err != ERR_OK) {
      LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_accept(%d): netconn_peer failed,
err=%d\n", s, err));
      netconn_delete(newconn);
      free_socket(nsock, 1);
      sock_set_errno(sock, err_to_errno(err));
      done_socket(sock);
      return -1;
    }




    _______________________________________________________

Reply to this item at:

  <https://savannah.nongnu.org/bugs/?55536>

_______________________________________________
  Message sent via Savannah
  https://savannah.nongnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]