Index: tracker-dbus-metadata.c =================================================================== RCS file: /cvs/gnome/tracker/src/trackerd/tracker-dbus-metadata.c,v retrieving revision 1.7 diff -u -r1.7 tracker-dbus-metadata.c --- tracker-dbus-metadata.c 13 Sep 2006 22:55:39 -0000 1.7 +++ tracker-dbus-metadata.c 13 Sep 2006 23:15:46 -0000 @@ -408,35 +408,43 @@ is_embedded = FALSE; is_writable = FALSE; - if (meta) { - char ***res; + if (!meta) { + tracker_set_error (rec, "Unknown metadata type %s", meta); + return; + } - res = tracker_exec_proc (db_con, "GetMetadataTypeInfo", 1, meta); + char ***res; - if (res) { - char **row; + res = tracker_exec_proc (db_con, "GetMetadataTypeInfo", 1, meta); - row = tracker_db_get_row (res, 0); + if (!res) { + tracker_set_error (rec, "Unknown metadata type %s", meta); + return; + } - if (row && row[1] && row[2] && row[3]) { - int i; + char **row; - i = atoi (row[1]); + row = tracker_db_get_row (res, 0); - if (i >3 || i < 0) { - tracker_set_error (rec, "Data type for %s in invalid", meta); - return; - } + if (!(row && row[1] && row[2] && row[3])) { + tracker_set_error (rec, "Bad info for metadata type %s", meta); + return; + } - data_type = type_array[i]; - is_embedded = (strcmp (row[2], "1") == 0); - is_writable = (strcmp (row[3], "1") == 0); - } + int i; - tracker_db_free_result (res); - } + i = atoi (row[1]); + if (i > 3 || i < 0) { + tracker_set_error (rec, "Bad info for metadata type %s", meta); + return; } + + data_type = type_array[i]; + is_embedded = (strcmp (row[2], "1") == 0); + is_writable = (strcmp (row[3], "1") == 0); + + tracker_db_free_result (res); reply = dbus_message_new_method_return (rec->message);