[asterisk-commits] kpfleming: branch 1.6.0 r201263 - in /branches/1.6.0: ./ include/asterisk/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Jun 17 07:05:08 CDT 2009


Author: kpfleming
Date: Wed Jun 17 07:05:05 2009
New Revision: 201263

URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=201263
Log:
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)
  ........
................

Modified:
    branches/1.6.0/   (props changed)
    branches/1.6.0/include/asterisk/linkedlists.h

Propchange: branches/1.6.0/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.

Modified: branches/1.6.0/include/asterisk/linkedlists.h
URL: http://svn.asterisk.org/svn-view/asterisk/branches/1.6.0/include/asterisk/linkedlists.h?view=diff&rev=201263&r1=201262&r2=201263
==============================================================================
--- branches/1.6.0/include/asterisk/linkedlists.h (original)
+++ branches/1.6.0/include/asterisk/linkedlists.h Wed Jun 17 07:05:05 2009
@@ -730,15 +730,18 @@
   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




More information about the asterisk-commits mailing list