[asterisk-dev] [Code Review] Fix memory leaks in IMAP app_voicemail

Matt Jordan reviewboard at asterisk.org
Tue Sep 4 21:42:05 CDT 2012


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/2096/
-----------------------------------------------------------

Review request for Asterisk Developers.


Summary
-------

This looked to be a fairly straight forward patch (provided by the issue reporter, Filip Jenicek) - however, since the last time a memory leak was 'fixed' in app_voicemail it caused a memory corruption, I figured I'd post it up for review.

This patch fixes two memory leaks:

1. When find_user is called with NULL as its first parameter, the voicemail user returned is allocated on the heap.  The inboxcount2 function uses find_user in such a fashion when counting new messages, and fails to free the resulting voicemail user object.

2. When populate_defaults is called on a voicemail user, it wipes whatever flags have been set on the object by copying over the global flags object.  If the VM_ALLOCED flag was set on the voicemail user prior to doing so, that flag is removed.  This leaks the voicemail user when free_user is later called.

This patch differs slightly from Filip's patch in that the populate_defaults function isn't changed to preserve the VM_ALLOCED flag, as that function affects a significant number of places in the code (and the comments for the function state that it copies over the global flags - so we probably should have expected that flags set prior to the function would be blown away).  Instead, places that set the VM_ALLOCED flag do so now after calling populate_defaults.

This affected IMAP users and realtime users (and a unit test).


This addresses bug ASTERISK-19155.
    https://issues.asterisk.org/jira/browse/ASTERISK-19155


Diffs
-----

  /branches/1.8/apps/app_voicemail.c 372176 

Diff: https://reviewboard.asterisk.org/r/2096/diff


Testing
-------


Thanks,

Matt

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20120905/9fcd60d9/attachment.htm>


More information about the asterisk-dev mailing list