patches/nautilus-04-execute-shellscript.diff
author rohinis
Tue, 29 Nov 2011 17:32:55 +0000
branchs11express-2010-11
changeset 22234 c23e64da3e06
parent 16013 6dfdf0aa30c8
permissions -rw-r--r--
2011-11-29 Rohini S <[email protected]> * patches/Python26-22-audio.diff: Fixes CVE-2010-1634 * specs/SUNWPython26.spec: Fixes CR 7085446

/jds/bin/diff -uprN nautilus-2.26.3.old/libnautilus-private/nautilus-file.c nautilus-2.26.3/libnautilus-private/nautilus-file.c
--- nautilus-2.26.3.old/libnautilus-private/nautilus-file.c	2009-05-18 20:44:26.000000000 +0100
+++ nautilus-2.26.3/libnautilus-private/nautilus-file.c	2009-07-13 11:28:09.518901000 +0100
@@ -6249,10 +6249,31 @@ nautilus_file_get_file_info_error (Nauti
 gboolean
 nautilus_file_contains_text (NautilusFile *file)
 {
+	const gchar *script_mime_types[]= {
+		"application/x-shellscript",
+		"application/x-perl",
+		"application/x-python",
+		"application/x-csh",
+		"application/x-ruby",
+		NULL
+	};
+	const gchar **it;
+
 	if (file == NULL) {
 		return FALSE;
 	}
 
+	if (file->details == NULL || file->details->mime_type == NULL) {
+		return FALSE;
+	}
+
+	it = script_mime_types;
+	while (*it) {
+		if (! strcmp (file->details->mime_type, *it))
+			return TRUE;
+		it ++;
+	}
+
 	/* All text files inherit from text/plain */
 	return nautilus_file_is_mime_type (file, "text/plain");
 }