fixes crash in moh when cachertclasses flag is used

The result for moh_register was not verified to guarantee
the mohclass as added to the container.


(closes issue #16993)
Reported by: dmitri
Patches:
      res_musiconhold_rtclass2.patch uploaded by dmitri (license 1001)
      moh_crash2.diff uploaded by dvossel (license 671)
Tested by: dmitri




git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@269271 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
David Vossel 2010-06-09 15:09:25 +00:00
parent 6d627b8c38
commit e98835e437
1 changed files with 4 additions and 1 deletions

View File

@ -1373,7 +1373,10 @@ static int local_ast_moh_start(struct ast_channel *chan, const char *mclass, con
* has a pointer to a freed mohclass, so any operations involving the mohclass container would result in reading
* invalid memory.
*/
moh_register(mohclass, 0, DONT_UNREF);
if (moh_register(mohclass, 0, DONT_UNREF) == -1) {
mohclass = mohclass_unref(mohclass, "unreffing mohclass failed to register");
return -1;
}
} else {
/* We don't register RT moh class, so let's init it manualy */