[asterisk-commits] mmichelson: trunk r165724 - /trunk/res/res_odbc.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Thu Dec 18 13:34:33 CST 2008
Author: mmichelson
Date: Thu Dec 18 13:34:33 2008
New Revision: 165724
URL: http://svn.digium.com/view/asterisk?view=rev&rev=165724
Log:
Fix crashes in res_odbc.
The variable "class" was being set NULL just prior to
being dereferenced in an ao2_link call. I have moved
the setting of the variable to NULL until after the
ao2_link call.
Modified:
trunk/res/res_odbc.c
Modified: trunk/res/res_odbc.c
URL: http://svn.digium.com/view/asterisk/trunk/res/res_odbc.c?view=diff&rev=165724&r1=165723&r2=165724
==============================================================================
--- trunk/res/res_odbc.c (original)
+++ trunk/res/res_odbc.c Thu Dec 18 13:34:33 2008
@@ -699,7 +699,6 @@
ast_mutex_init(&obj->lock);
/* obj inherits the outstanding reference to class */
obj->parent = class;
- class = NULL;
if (odbc_obj_connect(obj) == ODBC_FAIL) {
ast_log(LOG_WARNING, "Failed to connect to %s\n", name);
ao2_ref(obj, -1);
@@ -708,6 +707,7 @@
obj->used = 1;
ao2_link(class->obj_container, obj);
}
+ class = NULL;
} else {
/* Object is not constructed, so delete outstanding reference to class. */
ao2_ref(class, -1);
@@ -735,7 +735,6 @@
ast_mutex_init(&obj->lock);
/* obj inherits the outstanding reference to class */
obj->parent = class;
- class = NULL;
if (odbc_obj_connect(obj) == ODBC_FAIL) {
ast_log(LOG_WARNING, "Failed to connect to %s\n", name);
ao2_ref(obj, -1);
@@ -743,6 +742,7 @@
} else {
ao2_link(class->obj_container, obj);
}
+ class = NULL;
}
}
More information about the asterisk-commits
mailing list