Index: src/libtracker/tracker-tag.c =================================================================== RCS file: /cvs/gnome/tracker/src/libtracker/tracker-tag.c,v retrieving revision 1.9 diff -u -r1.9 tracker-tag.c --- src/libtracker/tracker-tag.c 2 Oct 2006 23:41:21 -0000 1.9 +++ src/libtracker/tracker-tag.c 23 Oct 2006 22:01:08 -0000 @@ -69,7 +69,7 @@ TrackerClient *client = NULL; GOptionContext *context = NULL; GError *error = NULL; - int i = 0; + int i = 0, k; setlocale (LC_ALL, ""); @@ -99,10 +99,17 @@ if (files) for (i = 0; files[i] != NULL; i++) { gchar *tmp = realpath (files[i], NULL); - gchar *utf = g_filename_to_utf8(tmp, -1, NULL, NULL, NULL); - g_free(files[i]); - g_free(tmp); - files[i] = utf; + if (tmp) { + gchar *utf = g_filename_to_utf8(tmp, -1, NULL, NULL, NULL); + g_free(files[i]); + g_free(tmp); + files[i] = utf; + } else { + g_printerr("%s: file not found\n", files[i]); + for (k = i; files[k] != NULL; k++) + files[k] = files[k+1]; + i--; // Make sure we run over this file again + } } if (add || delete || remove_all) { Index: src/trackerd/tracker-dbus-keywords.c =================================================================== RCS file: /cvs/gnome/tracker/src/trackerd/tracker-dbus-keywords.c,v retrieving revision 1.12 diff -u -r1.12 tracker-dbus-keywords.c --- src/trackerd/tracker-dbus-keywords.c 2 Oct 2006 23:41:21 -0000 1.12 +++ src/trackerd/tracker-dbus-keywords.c 23 Oct 2006 22:01:08 -0000 @@ -82,6 +82,7 @@ tracker_dbus_method_keywords_get_list (DBusRec *rec) { DBConnection *db_con; + DBusError dbus_error; char *service; char ***res; @@ -100,9 +101,14 @@ */ - dbus_message_get_args (rec->message, NULL, + dbus_error_init(&dbus_error); + if (!dbus_message_get_args (rec->message, NULL, DBUS_TYPE_STRING, &service, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + tracker_set_error(rec, "DBusError: %s;%s", dbus_error.name, dbus_error.message); + dbus_error_free(&dbus_error); + return; + } if (!tracker_is_valid_service (db_con, service)) { tracker_set_error (rec, "Invalid service %s or service has not been implemented yet", service); @@ -121,6 +127,7 @@ tracker_dbus_method_keywords_get (DBusRec *rec) { DBConnection *db_con; + DBusError dbus_error; DBusMessage *reply; char *id, *uri, *service, *name, *path; char **array; @@ -140,10 +147,15 @@ */ - dbus_message_get_args (rec->message, NULL, + dbus_error_init(&dbus_error); + if (!dbus_message_get_args (rec->message, NULL, DBUS_TYPE_STRING, &service, DBUS_TYPE_STRING, &uri, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + tracker_set_error(rec, "DBusError: %s;%s", dbus_error.name, dbus_error.message); + dbus_error_free(&dbus_error); + return; + } if (!tracker_is_valid_service (db_con, service)) { tracker_set_error (rec, "Invalid service %s or service has not been implemented yet", service); @@ -177,6 +189,7 @@ g_free (name); g_free (path); + dbus_free_string_array(array); row_count = 0; array = NULL; @@ -202,6 +215,7 @@ tracker_dbus_method_keywords_add (DBusRec *rec) { DBConnection *db_con; + DBusError dbus_error; DBusMessage *reply; char *id, *uri, *service, *name, *path; char **array = NULL; @@ -220,11 +234,16 @@ */ - dbus_message_get_args (rec->message, NULL, + dbus_error_init(&dbus_error); + if (!dbus_message_get_args (rec->message, NULL, DBUS_TYPE_STRING, &service, DBUS_TYPE_STRING, &uri, DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, &array, &row_count, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + tracker_set_error(rec, "DBusError: %s;%s", dbus_error.name, dbus_error.message); + dbus_error_free(&dbus_error); + return; + } if (!tracker_is_valid_service (db_con, service)) { tracker_set_error (rec, "Invalid service %s or service has not been implemented yet", service); @@ -265,6 +284,8 @@ } } + dbus_free_string_array(array); + update_keywords_metadata (db_con, service, path, name); g_free (name); @@ -282,6 +303,7 @@ tracker_dbus_method_keywords_remove (DBusRec *rec) { DBConnection *db_con; + DBusError dbus_error; DBusMessage *reply; char *id, *uri, *service, *name, *path; char **array; @@ -302,11 +324,16 @@ */ - dbus_message_get_args (rec->message, NULL, + dbus_error_init(&dbus_error); + if (!dbus_message_get_args (rec->message, NULL, DBUS_TYPE_STRING, &service, DBUS_TYPE_STRING, &uri, DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, &array, &row_count, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + tracker_set_error(rec, "DBusError: %s;%s", dbus_error.name, dbus_error.message); + dbus_error_free(&dbus_error); + return; + } if (!tracker_is_valid_service (db_con, service)) { tracker_set_error (rec, "Invalid service %s or service has not been implemented yet", service); @@ -345,6 +372,8 @@ } } + dbus_free_string_array(array); + update_keywords_metadata (db_con, service, path, name); g_free (name); @@ -362,6 +391,7 @@ tracker_dbus_method_keywords_remove_all (DBusRec *rec) { DBConnection *db_con; + DBusError dbus_error; DBusMessage *reply; char *id, *uri, *service, *name, *path; @@ -378,10 +408,15 @@ */ - dbus_message_get_args (rec->message, NULL, + dbus_error_init(&dbus_error); + if (!dbus_message_get_args (rec->message, NULL, DBUS_TYPE_STRING, &service, DBUS_TYPE_STRING, &uri, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + tracker_set_error(rec, "DBusError: %s;%s", dbus_error.name, dbus_error.message); + dbus_error_free(&dbus_error); + return; + } if (!tracker_is_valid_service (db_con, service)) { tracker_set_error (rec, "Invalid service %s or service has not been implemented yet", service); @@ -429,6 +464,7 @@ tracker_dbus_method_keywords_search (DBusRec *rec) { DBConnection *db_con; + DBusError dbus_error; DBusMessage *reply; char *service; char **array; @@ -453,13 +489,18 @@ */ - dbus_message_get_args (rec->message, NULL, + dbus_error_init(&dbus_error); + if (!dbus_message_get_args (rec->message, NULL, DBUS_TYPE_INT32, &query_id, DBUS_TYPE_STRING, &service, DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, &array, &row_count, DBUS_TYPE_INT32, &offset, DBUS_TYPE_INT32, &limit, - DBUS_TYPE_INVALID); + DBUS_TYPE_INVALID)) { + tracker_set_error(rec, "DBusError: %s;%s", dbus_error.name, dbus_error.message); + dbus_error_free(&dbus_error); + return; + } if (!tracker_is_valid_service (db_con, service)) { tracker_set_error (rec, "Invalid service %s or service has not been implemented yet", service); @@ -534,6 +575,10 @@ g_free (query_where); g_free (query); + dbus_free_string_array(array); + row_count = 0; + array = NULL; + if (res) { array = tracker_get_query_result_as_array (res, &row_count); tracker_db_free_result (res);