Hi, Log of an IRC conversation on the status of this bug is attached. In short, it might be easier to workaround this problem at the nautilus level, it's way riskier at the gnome-vfs2 level.
Tentative patch for nautilus which didn't work is attached. Bye, -- Loïc Minier <[EMAIL PROTECTED]>
10:16 < HE> lool: Hmmm, I don't see a discussion about #408948. Is soemone working on that bug? 10:31 < lool> HE: I tried to, but the gnome-vfs2 side of things seem very risky to change, so I thought I would patch nautilus as a started; I wrote a preliminary patch which didn't work, but this made we wonder about a huge problem of the suggested fix: it might break all files without extensions or which have currently working non-recognized extensions 10:32 < lool> HE: In short, the proposed approach is to check that the data maps to a mime type which is the same than the MIME type of the file extensions 10:32 < lool> HE: But you *must* fail when the extension has no corresponding mime type (such as ".jpg ") 10:33 < lool> HE: But that would break for files named without extension ("foo") or files named with weird extensions which seem logical for the user (foo.text, foo.dissertation, foo.notes, foo.readme, foo.clob) 10:33 < lool> HE: So, when I realized I might be breaking opening of a lot of files, I gave up to think about it a little 10:34 < lool> That, and my tentative patch didn't work :) 10:34 < lool> HE: Both security issues can be handled in the same area of nautilus, and I think this would lower the gnome-vfs side of things 10:35 < lool> HE: Oh, did I mention upstream isn't maintaining gnome-vfs2 anymore? 10:35 < HE> lool: It isn't? 10:35 < HE> lool: I seem to be a bit out of the loop wrt Gnome stuff. 10:35 < HE> lool: Has it shown to be too useful? 10:36 < lool> HE: There was a massive debunk of the POSIX semantics mapping by Alex and he's been working hard on a glib level replacement 10:37 < lool> But obviously, gnome-vfs2 is going to stay for a little while before apps are rewritten; and upstream is probably still taking patches 10:37 < HE> lool: Well, gnome-vfs being gnome-something was always a weirdo idea, but changing that sounds like something you would do when moving to glib3... 10:37 < lool> I doubt they are intereted in adding disruptive security checks like #408948 proposes :-/
Index: debian/changelog =================================================================== --- debian/changelog (révision 8527) +++ debian/changelog (copie de travail) @@ -1,8 +1,15 @@ -nautilus (2.14.3-8) UNRELEASED; urgency=low +nautilus (2.14.3-8) unstable; urgency=medium * Add a get-orig-source target to retrieve the upstream tarball. + * SECURITY: New patch, 20_warn-unknown-file-extension, to warn when opening + files for which we could compute a MIME type based on file magic, but + where the file extension has no associated MIME type; this should best be + done in gnome-vfs2, see #408948, GNOME #405052, and Novell #258503, but + meanwhile this lowers the impact of the bug. This would also need some + specialized UI instead of the generic warning message, but we don't have + infrastructure to translate UI additions at the Debian level for now. - -- Loic Minier <[EMAIL PROTECTED]> Sat, 13 Jan 2007 23:33:58 +0100 + -- Loic Minier <[EMAIL PROTECTED]> Wed, 7 Feb 2007 11:52:53 +0100 nautilus (2.14.3-7) unstable; urgency=medium Index: debian/patches/20_warn-unknown-file-extension.patch =================================================================== --- debian/patches/20_warn-unknown-file-extension.patch (révision 0) +++ debian/patches/20_warn-unknown-file-extension.patch (révision 0) @@ -0,0 +1,17 @@ +diff -Nur nautilus-2.14.3/src/file-manager/fm-directory-view.c nautilus-2.14.3.new/src/file-manager/fm-directory-view.c +--- nautilus-2.14.3/src/file-manager/fm-directory-view.c 2007-02-07 11:43:37.000000000 +0100 ++++ nautilus-2.14.3.new/src/file-manager/fm-directory-view.c 2007-02-07 11:46:23.000000000 +0100 +@@ -5008,9 +5008,10 @@ + (mime_type); + guessed_default_app = gnome_vfs_mime_get_default_application + (guessed_mime_type); +- if (default_app != NULL && +- guessed_default_app != NULL && +- !gnome_vfs_mime_application_equal (default_app, guessed_default_app)) { ++ if ((default_app != NULL && guessed_default_app == NULL) || ++ (default_app != NULL && ++ guessed_default_app != NULL && ++ !gnome_vfs_mime_application_equal (default_app, guessed_default_app))) { + if (warn_on_mismatch) { + warn_mismatched_mime_types (view, file); + }