mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 10:47:18 +00:00 
			
		
		
		
	This fixes a nasty chanspy bug which was causing a channel leak every time a spied on channel made a call.
In addition to the above, it makes certain channel destruction occurs so that applications don't get stuck waiting for datastore destruction while monitored by chanspy. (closes issue #18742) Reported by: jkister Tested by: jkister, jcovert, jrose Review: http://reviewboard.digium.internal/r/106/ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@311197 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		| @@ -707,6 +707,7 @@ static struct ast_autochan *next_channel(struct ast_channel_iterator *iter, | |||||||
| 		struct ast_autochan *autochan, struct ast_channel *chan) | 		struct ast_autochan *autochan, struct ast_channel *chan) | ||||||
| { | { | ||||||
| 	struct ast_channel *next; | 	struct ast_channel *next; | ||||||
|  | 	struct ast_autochan *autochan_store; | ||||||
| 	const size_t pseudo_len = strlen("DAHDI/pseudo"); | 	const size_t pseudo_len = strlen("DAHDI/pseudo"); | ||||||
|  |  | ||||||
| 	if (!iter) { | 	if (!iter) { | ||||||
| @@ -724,7 +725,10 @@ redo: | |||||||
| 		goto redo; | 		goto redo; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return ast_autochan_setup(next); | 	autochan_store = ast_autochan_setup(next); | ||||||
|  | 	ast_channel_unref(next); | ||||||
|  |  | ||||||
|  | 	return autochan_store; | ||||||
| } | } | ||||||
|  |  | ||||||
| static int common_exec(struct ast_channel *chan, struct ast_flags *flags, | static int common_exec(struct ast_channel *chan, struct ast_flags *flags, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user