[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#598854: marked as done (unblock: file-roller/2.30.2-2)



Your message dated Sun, 3 Oct 2010 16:43:35 +0200
with message-id <20101003144335.GM10564@radis.liafa.jussieu.fr>
and subject line Re: Bug#598854: unblock: file-roller/2.30.2-2
has caused the Debian Bug report #598854,
regarding unblock: file-roller/2.30.2-2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
598854: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=598854
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: freeze-exception

Please unblock hicolor-icon-theme for squeeze.

file-roller (2.30.2-2) unstable; urgency=low
 .
   * Only suggest lzma. Closes: #595117.
   * Include some patches sitting in the upstream repository:
     + 01_rar_crasher.patch: fix a crasher with the rar command.
     + 02_escape_newlines.patch: handle the case of files with newlines
       in their name.
     + 03_tar_xz_update.patch: update .tar.xz files without losing the
       data in them. Closes: #594839.

I’m attaching the patches. The third issue is arguably RC (data loss).

Cheers,
-- 
 .''`.      Josselin Mouette
: :' :
`. `'  “If you behave this way because you are blackmailed by someone,
  `-    […] I will see what I can do for you.”  -- Jörg Schilling
From bac5d03a29a411c79e0d838d48c404900d30066d Mon Sep 17 00:00:00 2001
From: Paolo Bacchilega <paobac@src.gnome.org>
Date: Fri, 25 Jun 2010 10:45:32 +0000
Subject: [rar] fixed seg fault when there is an extra info line in the output

---
diff --git a/src/fr-command-rar.c b/src/fr-command-rar.c
index 482ab57..2c42ba4 100644
--- a/src/fr-command-rar.c
+++ b/src/fr-command-rar.c
@@ -117,6 +117,59 @@ process_line (char     *line,
 		return;
 	}
 
+	if (! rar_comm->odd_line) {
+		FileData *fdata;
+
+		fdata = rar_comm->fdata;
+
+		/* read file info. */
+
+		fields = split_line (line, 6);
+		if (g_strv_length (fields) < 6) {
+			/* wrong line format, treat this line as a filename line */
+			g_strfreev (fields);
+			file_data_free (rar_comm->fdata);
+			rar_comm->fdata = NULL;
+			rar_comm->odd_line = TRUE;
+		}
+		else {
+			if ((strcmp (fields[2], "<->") == 0)
+			    || (strcmp (fields[2], "<--") == 0))
+			{
+				/* ignore files that span more volumes */
+
+				file_data_free (rar_comm->fdata);
+				rar_comm->fdata = NULL;
+			}
+			else {
+				fdata->size = g_ascii_strtoull (fields[0], NULL, 10);
+				fdata->modified = mktime_from_string (fields[3], fields[4]);
+
+				if ((fields[5][1] == 'D') || (fields[5][0] == 'd')) {
+					char *tmp;
+
+					tmp = fdata->full_path;
+					fdata->full_path = g_strconcat (fdata->full_path, "/", NULL);
+
+					fdata->original_path = g_strdup (fdata->original_path);
+					fdata->free_original_path = TRUE;
+
+					g_free (tmp);
+
+					fdata->name = dir_name_from_path (fdata->full_path);
+					fdata->dir = TRUE;
+				}
+				else
+					fdata->name = g_strdup (file_name_from_path (fdata->full_path));
+
+				fr_command_add_file (comm, fdata);
+				rar_comm->fdata = NULL;
+			}
+
+			g_strfreev (fields);
+		}
+	}
+
 	if (rar_comm->odd_line) {
 		FileData *fdata;
 
@@ -141,48 +194,7 @@ process_line (char     *line,
 		fdata->path = remove_level_from_path (fdata->full_path);
 	}
 	else {
-		FileData *fdata;
-
-		fdata = rar_comm->fdata;
-
-		/* read file info. */
-
-		fields = split_line (line, 6);
-
-		if ((strcmp (fields[2], "<->") == 0)
-		    || (strcmp (fields[2], "<--") == 0))
-		{
-			/* ignore files that span more volumes */
-
-			file_data_free (rar_comm->fdata);
-			rar_comm->fdata = NULL;
-		}
-		else {
-			fdata->size = g_ascii_strtoull (fields[0], NULL, 10);
-			fdata->modified = mktime_from_string (fields[3], fields[4]);
-
-			if ((fields[5][1] == 'D') || (fields[5][0] == 'd')) {
-				char *tmp;
-
-				tmp = fdata->full_path;
-				fdata->full_path = g_strconcat (fdata->full_path, "/", NULL);
-
-				fdata->original_path = g_strdup (fdata->original_path);
-				fdata->free_original_path = TRUE;
-
-				g_free (tmp);
-
-				fdata->name = dir_name_from_path (fdata->full_path);
-				fdata->dir = TRUE;
-			}
-			else
-				fdata->name = g_strdup (file_name_from_path (fdata->full_path));
-
-			fr_command_add_file (comm, fdata);
-			rar_comm->fdata = NULL;
-		}
 
-		g_strfreev (fields);
 	}
 
 	rar_comm->odd_line = ! rar_comm->odd_line;
--
cgit v0.8.3.1
From 2194eddd71a01f178defa1137d7fab01acedf44b Mon Sep 17 00:00:00 2001
From: Paolo Bacchilega <paobac@src.gnome.org>
Date: Tue, 06 Jul 2010 07:31:15 +0000
Subject: escape new lines in filenames when saving the file list to a file

---
diff --git a/src/fr-archive.c b/src/fr-archive.c
index ff71e92..83d0889 100644
--- a/src/fr-archive.c
+++ b/src/fr-archive.c
@@ -1160,12 +1160,17 @@ save_list_to_temp_file (GList   *file_list,
 		for (scan = file_list; scan != NULL; scan = scan->next) {
 			char *filename = scan->data;
 
+			filename = str_substitute (filename, "\n", "\\n");
 			if ((g_output_stream_write (G_OUTPUT_STREAM (ostream), filename, strlen (filename), NULL, error) < 0)
 			    || (g_output_stream_write (G_OUTPUT_STREAM (ostream), "\n", 1, NULL, error) < 0))
 			{
 				error_occurred = TRUE;
-				break;
 			}
+
+			g_free (filename);
+
+			if (error_occurred)
+				break;
 		}
 		if (! error_occurred && ! g_output_stream_close (G_OUTPUT_STREAM (ostream), NULL, error))
 			error_occurred = TRUE;
--
cgit v0.8.3.1
From c668bfe6175ed0891dd2a42bfe590a8adf7be8de Mon Sep 17 00:00:00 2001
From: Paolo Bacchilega <paobac@src.gnome.org>
Date: Fri, 03 Sep 2010 18:09:04 +0000
Subject: fixed update of files in .tar.xz archives

[bug #628717]
---
diff --git a/src/fr-command-tar.c b/src/fr-command-tar.c
index 53ab601..650a197 100644
--- a/src/fr-command-tar.c
+++ b/src/fr-command-tar.c
@@ -769,7 +769,7 @@ get_uncompressed_name (FrCommandTar *c_tar,
 		/* X.tar.xz --> X.tar
 		 * (There doesn't seem to be a shorthand suffix) */
 		if (file_extension_is (e_filename, ".tar.xz"))
-			new_name[l - 5] = 0;
+			new_name[l - 3] = 0;
 	}
 	else if (is_mime_type (comm->mime_type, "application/x-lzop-compressed-tar")) {
 		/* X.tzo     -->  X.tar
--
cgit v0.8.3.1

Attachment: signature.asc
Description: This is a digitally signed message part


--- End Message ---
--- Begin Message ---
On Sat, Oct  2, 2010 at 18:34:14 +0200, Josselin Mouette wrote:

> file-roller (2.30.2-2) unstable; urgency=low

Unblocked.

Cheers,
Julien

Attachment: signature.asc
Description: Digital signature


--- End Message ---

Reply to: