mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 18:55:19 +00:00 
			
		
		
		
	Merged revisions 201262 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r201262 | kpfleming | 2009-06-17 07:04:17 -0500 (Wed, 17 Jun 2009) | 15 lines Merged revisions 201261 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r201261 | kpfleming | 2009-06-17 07:03:25 -0500 (Wed, 17 Jun 2009) | 9 lines Correct AST_LIST_APPEND_LIST behavior when list to be appended is empty. When the list to be appended is empty, and the list to be appended to is *not*, AST_LIST_APPEND_LIST would actually cause the target list to become broken, and no longer have a pointer to its last entry. This patch fixes the problem. (reported by Stanislaw Pitucha on the asterisk-dev mailing list) ........ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@201264 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		| @@ -765,15 +765,18 @@ struct {								\ | ||||
|  * calling this macro (the list entries are \b moved to the target list). | ||||
|  */ | ||||
| #define AST_LIST_APPEND_LIST(head, list, field) do {			\ | ||||
|       if (!(head)->first) {						\ | ||||
| 	if (!(list)->first) {						\ | ||||
| 		break;							\ | ||||
| 	}								\ | ||||
| 	if (!(head)->first) {						\ | ||||
| 		(head)->first = (list)->first;				\ | ||||
| 		(head)->last = (list)->last;				\ | ||||
|       } else {								\ | ||||
| 	} else {							\ | ||||
| 		(head)->last->field.next = (list)->first;		\ | ||||
| 		(head)->last = (list)->last;				\ | ||||
|       }									\ | ||||
|       (list)->first = NULL;						\ | ||||
|       (list)->last = NULL;						\ | ||||
| 	}								\ | ||||
| 	(list)->first = NULL;						\ | ||||
| 	(list)->last = NULL;						\ | ||||
| } while (0) | ||||
|  | ||||
| #define AST_RWLIST_APPEND_LIST AST_LIST_APPEND_LIST | ||||
|   | ||||
		Reference in New Issue
	
	Block a user