[asterisk-commits] twilson: branch twilson/res_config_sqlite3 r334433 - /team/twilson/res_config...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Sat Sep 3 23:01:02 CDT 2011


Author: twilson
Date: Sat Sep  3 23:00:51 2011
New Revision: 334433

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=334433
Log:
Insert variables at tail because of silly allow/disallow

Modified:
    team/twilson/res_config_sqlite3/res/res_config_sqlite3.c

Modified: team/twilson/res_config_sqlite3/res/res_config_sqlite3.c
URL: http://svnview.digium.com/svn/asterisk/team/twilson/res_config_sqlite3/res/res_config_sqlite3.c?view=diff&rev=334433&r1=334432&r2=334433
==============================================================================
--- team/twilson/res_config_sqlite3/res/res_config_sqlite3.c (original)
+++ team/twilson/res_config_sqlite3/res/res_config_sqlite3.c Sat Sep  3 23:00:51 2011
@@ -426,15 +426,23 @@
 /*! \brief Create a varlist from a single sqlite3 result row */
 static int row_to_varlist(void *arg, int num_columns, char **values, char **columns)
 {
-	struct ast_variable **head = arg;
+	struct ast_variable **head = arg, *tail;
 	int i;
-
-	/* reverse order, but who cares? */
-	for (i = 0; i < num_columns; i++) {
-		struct ast_variable *new;
-		new = ast_variable_new(columns[i], values[i], "");
-		new->next = *head;
-		*head = new;
+	struct ast_variable *new;
+
+	if (!(new = ast_variable_new(columns[0], values[0], ""))) {
+		return SQLITE_ABORT;
+	}
+	*head = tail = new;
+
+	for (i = 1; i < num_columns; i++) {
+		if (!(new = ast_variable_new(columns[i], values[i], ""))) {
+			ast_variables_destroy(*head);
+			*head = NULL;
+			return SQLITE_ABORT;
+		}
+		tail->next = new;
+		tail = new;
 	}
 
 	return 0;




More information about the asterisk-commits mailing list