From 02fb0d8d28c123a9b998f78a77d0e33d30a80f2c Mon Sep 17 00:00:00 2001 From: Matthew Jordan Date: Tue, 26 Jun 2012 13:21:13 +0000 Subject: [PATCH] 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. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@369390 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/adsi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/adsi.c b/main/adsi.c index 870b132913..bb8570af39 100644 --- a/main/adsi.c +++ b/main/adsi.c @@ -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;