[OpenSIPS-Devel] [OpenSIPS/opensips] e25895: acc: Do not dereference NULL dialog contexts

Liviu Chircu liviu at opensips.org
Mon Nov 19 10:30:14 EST 2018


  Branch: refs/heads/2.4
  Home:   https://github.com/OpenSIPS/opensips
  Commit: e25895624b1c815dd800bc73452f90223a94242b
      https://github.com/OpenSIPS/opensips/commit/e25895624b1c815dd800bc73452f90223a94242b
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2018-11-19 (Mon, 19 Nov 2018)

  Changed paths:
    M modules/acc/acc_logic.c

  Log Message:
  -----------
  acc: Do not dereference NULL dialog contexts

This bug could be triggered in failover scenarios, where the accounting
context would be created and cleaned up at least once before actually
calling do_accounting().  One way to trigger it would be:

    * create_dialog();
    * $acc_extra(foo) = "bar"; # create a dialog-stored acc context
    * t_relay(); exit; # msg is relayed, but ctx is unused =>
	the code frees it and leaves a NULL dialog value marker.
    * inside failure_route, do: $acc_extra(foo) = "bar".  We fetch the
      NULL context stored inside dialog, dereference it and crash.

Many thanks to 46Labs for reporting this issue, as well as providing
extensive troubleshooting information.

(cherry picked from commit 6eb14f6a3d23bb6a646aa414907755ea9b381511)



      **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.


More information about the Devel mailing list