]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 369391 via svnmerge from
authorAutomerge script <automerge@asterisk.org>
Tue, 26 Jun 2012 14:21:46 +0000 (14:21 +0000)
committerAutomerge script <automerge@asterisk.org>
Tue, 26 Jun 2012 14:21:46 +0000 (14:21 +0000)
file:///srv/subversion/repos/asterisk/branches/10

................
  r369391 | mjordan | 2012-06-26 08:22:42 -0500 (Tue, 26 Jun 2012) | 15 lines

  Fix crash in unloading of res_adsi module

  When res_adsi is unloaded, it removes the ADSI functions that it previously installed
  by passing a NULL adsi_funcs pointer to ast_adsi_install_funcs.  This function was not
  checking whether or not the adsi_funcs pointer passed in was NULL before dereferencing
  it to check whether or not the version of the functions matches what the core was
  expecting it.

  This patch makes it so that the version is only checked if a potentially valid adsi_funcs
  pointer was passed in.  Passing in NULL removes the installed functions, bypassing the
  version check.
  ........

  Merged revisions 369390 from http://svn.asterisk.org/svn/asterisk/branches/1.8
................

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10-digiumphones@369406 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/adsi.c

index 870b132913ea98f3f593709eddbce7247d588bd9..bb8570af39f7e8becd9919cc2782d807c90154e8 100644 (file)
@@ -339,7 +339,7 @@ int ast_adsi_input_format(unsigned char *buf, int num, int dir, int wrap, char *
 
 void ast_adsi_install_funcs(const struct adsi_funcs *funcs)
 {
-       if (funcs->version < current_adsi_version) {
+       if (funcs && funcs->version < current_adsi_version) {
                ast_log(LOG_WARNING, "Cannot install ADSI function pointers due to version mismatch."
                                "Ours: %u, Theirs: %u\n", current_adsi_version, funcs->version);
                return;