mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-25 15:08:53 +00:00
Fix for segfault in __ast_rwlock_destroy with DEBUG_THREADS
If DEBUG_THREADS is enabled __ast_rwlock_destroy causes a segfault while trying to access a possible NULL t->track object. A NULL check has been added before trying to access the memory. (closes issue ASTERISK-21724) Reported by: Corey Farrell Fixed by: Corey Farrell Patches: ast_rwlock_destroy-segv.patch uploaded by Corey Farrell (license 5909) ........ Merged revisions 388838 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 388839 from http://svn.asterisk.org/svn/asterisk/branches/11 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@388840 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -745,7 +745,7 @@ int __ast_rwlock_destroy(const char *filename, int lineno, const char *func, con
|
|||||||
__ast_mutex_logger("%s line %d (%s): Error destroying rwlock %s: %s\n",
|
__ast_mutex_logger("%s line %d (%s): Error destroying rwlock %s: %s\n",
|
||||||
filename, lineno, func, rwlock_name, strerror(res));
|
filename, lineno, func, rwlock_name, strerror(res));
|
||||||
}
|
}
|
||||||
if (t->tracking) {
|
if (t->tracking && lt) {
|
||||||
ast_reentrancy_lock(lt);
|
ast_reentrancy_lock(lt);
|
||||||
lt->file[0] = filename;
|
lt->file[0] = filename;
|
||||||
lt->lineno[0] = lineno;
|
lt->lineno[0] = lineno;
|
||||||
|
Reference in New Issue
Block a user