Summary: | ASTERISK-03405: Race condition in ast_request_and_dial | ||
Reporter: | Tilghman Lesher (tilghman) | Labels: | |
Date Opened: | 2005-02-01 00:47:52.000-0600 | Date Closed: | 2011-06-07 14:05:00 |
Priority: | Major | Regression? | No |
Status: | Closed/Complete | Components: | Core/General |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ||
Description: | After ast_request_and_dial calls ast_request(), which invokes a new thread for the channel, ast_request_and_dial() modifies core channel structures without locking the channel first. Since the channel could potentially exit at any time following its thread creation, this is a potential race condition. ****** ADDITIONAL INFORMATION ****** The channel probably needs to be locked prior to invoking any thread creation, including invoking the various monitor threads of the various channel modules, to be unlocked only after we are done allocating and setting channel structure elements in the request routines. | ||
Comments: | By: Mark Spencer (markster) 2005-02-01 00:48:47.000-0600 Again, you are mistaken, ast_request does not spawn a new thread. |