mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	Make sure a channel exists before attempting to start or stop channel
autoservice in func_lock and func_shell. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87233 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		| @@ -256,19 +256,27 @@ static int unlock_read(struct ast_channel *chan, const char *cmd, char *data, ch | ||||
| } | ||||
|  | ||||
| static int lock_read(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len) | ||||
| { | ||||
| 	ast_autoservice_start(chan); | ||||
| {	 | ||||
| 	if (chan) | ||||
| 		ast_autoservice_start(chan); | ||||
|  | ||||
| 	ast_copy_string(buf, get_lock(chan, data, 0) ? "0" : "1", len); | ||||
| 	ast_autoservice_stop(chan); | ||||
|  | ||||
| 	if (chan) | ||||
| 		ast_autoservice_stop(chan); | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| static int trylock_read(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len) | ||||
| { | ||||
| 	ast_autoservice_start(chan); | ||||
| 	if (chan) | ||||
| 		ast_autoservice_start(chan); | ||||
|  | ||||
| 	ast_copy_string(buf, get_lock(chan, data, 1) ? "0" : "1", len); | ||||
| 	ast_autoservice_stop(chan); | ||||
|  | ||||
| 	if (chan) | ||||
| 		ast_autoservice_stop(chan); | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
|   | ||||
| @@ -49,7 +49,8 @@ static int shell_helper(struct ast_channel *chan, const char *cmd, char *data, | ||||
| 		return -1; | ||||
| 	} | ||||
|  | ||||
| 	ast_autoservice_start(chan); | ||||
| 	if (chan) | ||||
| 		ast_autoservice_start(chan); | ||||
|  | ||||
| 	if (len >= 1) { | ||||
| 		FILE *ptr; | ||||
| @@ -62,7 +63,8 @@ static int shell_helper(struct ast_channel *chan, const char *cmd, char *data, | ||||
| 		pclose(ptr); | ||||
| 	} | ||||
|  | ||||
| 	ast_autoservice_stop(chan); | ||||
| 	if (chan) | ||||
| 		ast_autoservice_stop(chan); | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user