[tracker] tracker-extract, msoffice-xml: Fix invalid reads
- From: Aleksander Morgado <aleksm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker] tracker-extract, msoffice-xml: Fix invalid reads
- Date: Wed, 24 Nov 2010 12:24:51 +0000 (UTC)
commit 05b0357b3e9d64888e35e614d29c6eac51310392
Author: Aleksander Morgado <aleksander lanedo com>
Date: Wed Nov 24 13:16:42 2010 +0100
tracker-extract, msoffice-xml: Fix invalid reads
src/tracker-extract/tracker-extract-msoffice-xml.c | 38 ++++++++++----------
1 files changed, 19 insertions(+), 19 deletions(-)
---
diff --git a/src/tracker-extract/tracker-extract-msoffice-xml.c b/src/tracker-extract/tracker-extract-msoffice-xml.c
index 79d2755..a4c2fc2 100644
--- a/src/tracker-extract/tracker-extract-msoffice-xml.c
+++ b/src/tracker-extract/tracker-extract-msoffice-xml.c
@@ -673,6 +673,7 @@ msoffice_xml_get_file_type (const gchar *uri)
GFile *file;
GFileInfo *file_info;
const gchar *mime_used;
+ MsOfficeXMLFileType file_type;
/* Get GFile from uri... */
file = g_file_new_for_uri (uri);
@@ -693,30 +694,29 @@ msoffice_xml_get_file_type (const gchar *uri)
return FILE_TYPE_INVALID;
}
- /* Get Content Type from GFileInfo */
+ /* Get Content Type from GFileInfo. The constant string will be valid
+ * as long as the file info reference is valid */
mime_used = g_file_info_get_content_type (file_info);
- g_object_unref (file_info);
-
- /* MsOffice Word document? */
if (g_ascii_strcasecmp (mime_used, "application/vnd.openxmlformats-officedocument.wordprocessingml.document") == 0) {
- return FILE_TYPE_DOCX;
- }
-
- /* MsOffice Powerpoint document? */
- if (g_ascii_strcasecmp (mime_used, "application/vnd.openxmlformats-officedocument.presentationml.presentation") == 0) {
- return FILE_TYPE_PPTX;
- }
- if (g_ascii_strcasecmp (mime_used, "application/vnd.openxmlformats-officedocument.presentationml.slideshow") == 0) {
- return FILE_TYPE_PPSX;
+ /* MsOffice Word document */
+ file_type = FILE_TYPE_DOCX;
+ } else if (g_ascii_strcasecmp (mime_used, "application/vnd.openxmlformats-officedocument.presentationml.presentation") == 0) {
+ /* MsOffice Powerpoint document */
+ file_type = FILE_TYPE_PPTX;
+ } else if (g_ascii_strcasecmp (mime_used, "application/vnd.openxmlformats-officedocument.presentationml.slideshow") == 0) {
+ /* MsOffice Powerpoint (slideshow) document */
+ file_type = FILE_TYPE_PPSX;
+ } else if (g_ascii_strcasecmp (mime_used, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") == 0) {
+ /* MsOffice Excel document */
+ file_type = FILE_TYPE_XLSX;
+ } else {
+ g_message ("Mime type was not recognised:'%s'", mime_used);
+ file_type = FILE_TYPE_INVALID;
}
- /* MsOffice Excel document? */
- if (g_ascii_strcasecmp (mime_used, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") == 0) {
- return FILE_TYPE_XLSX;
- }
+ g_object_unref (file_info);
- g_message ("Mime type was not recognised:'%s'", mime_used);
- return FILE_TYPE_INVALID;
+ return file_type;
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]