Branch: refs/heads/4.0
  Home:   https://github.com/OpenSIPS/opensips
  Commit: 55e13914627b1bd6c5aef1a880a44d77e00b6e85
      
https://github.com/OpenSIPS/opensips/commit/55e13914627b1bd6c5aef1a880a44d77e00b6e85
  Author: Yury Kirsanov <[email protected]>
  Date:   2026-10-09 (Fri, 09 Oct 2026)

  Changed paths:
    M modules/proto_ws/ws_handshake_common.h

  Log Message:
  -----------
  proto_ws: release the handshake headers under ws_http_parse_lock

The WebSocket handshake (server and client side) is processed on a TCP IO
thread, and its headers are parsed with parse_headers_aux(), which allocates
the header list from the process' pkg memory. pkg memory is not thread safe,
so the parsing already runs under ws_http_parse_lock - but the matching
free_hdr_field_lst() did not. A thread releasing its list while another one
parses corrupts the pkg free lists, and the next allocation crashes in
qm_detach_free() / fm_malloc().

Release the list through ws_free_parsed_headers(), which takes the same lock,
on both the success and the error path of ws_parse_req_handshake() and
ws_parse_rpl_handshake().

(cherry picked from commit c9fb284de6f1ede5f407b03a789ecffa1b5f251b)



To unsubscribe from these emails, change your notification settings at 
https://github.com/OpenSIPS/opensips/settings/notifications

_______________________________________________
Devel mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel

Reply via email to