Control: forwarded -1 https://bugzilla.gnome.org/show_bug.cgi?id=655601
Control: tags -1 patch
Control: found -1 2.91.93-1
Control: affects -1 brasero


Am Donnerstag, den 11.10.2012, 15:44 +0200 schrieb Paul Menzel:

> Am Donnerstag, den 11.10.2012, 15:06 +0200 schrieb Thomas Schmitt:
> 
> > > -       while (priv->libburn_src->read_xt (priv->libburn_src, buf, 
> > > sector_size) == sector_size) {
> > > +       while (read_bytes == sector_size) {
> > > I am building it right now.
> > 
> > Crossing fingers ...

[…]

> Thomas, I am going to write the commit message now.

Please find the patch attached.

[…]


Thanks,

Paul
From 17ad074e2ad8e3881afae148594a770f3dd7f228 Mon Sep 17 00:00:00 2001
From: Paul Menzel <paulepan...@users.sourceforge.net>
Date: Thu, 11 Oct 2012 14:40:06 +0200
Subject: [PATCH] Libburnia plugin: Fix while loop in `brasero_libisofs_write_image_to_fd_thread()` (#655601)

In commit 1b8397ee [1]

        commit 1b8397ee252df2d554682ca2d694d5937fbf6e39
        Author: Philippe Rouquier <bonfire-...@wanadoo.fr>
        Date:   Tue Oct 5 10:10:17 2010 +0200

            Fix for #630651 [2] - Basero creating incomplete image (.ISO) files

distributed since Brasero 2.91.1

        $ git tag --contains 1b8397ee252df2d554682ca2d694d5937fbf6e39 | sort | head -n 1
        BRASERO_2_91_1

a small bug was introduced by forgetting to substitude a command with a newly introduced variable in the loop condition. This broke the loop reading out the data to be written to the disc.

This small error had a huge impacted as writing images on the fly always failed, because only half of the image was written to the disc. Several bug reports exist for this problem and are most likely due to this problem [3][4][5].

Substituting this command with the variable fixes the problem reported in GNOME Bugzilla bug 655601.

Creating this patch would not have been possible without the invaluable and quick observations and explanations of Thomas Schmitt from the libburnia project [7]. In the end Michael Biebl from the Debian project stepped up to look into this problem and bisected this problem to the above commit. Thomas Schmitt pointed out the error afterward. A big thanks to both of them and everybody else reporting errors and providing logs!

[1] http://git.gnome.org/browse/brasero/commit/?id=1b8397ee252df2d554682ca2d694d5937fbf6e39
[2] https://bugzilla.gnome.org/show_bug.cgi?id=630651
[3] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=688229
[4] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=594753
[5] https://bugs.launchpad.net/ubuntu/+source/brasero/+bug/780117
[6] https://bugzilla.gnome.org/show_bug.cgi?id=655601
[7] http://libburnia-project.org/
---
 plugins/libburnia/burn-libisofs.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/plugins/libburnia/burn-libisofs.c b/plugins/libburnia/burn-libisofs.c
index 22cb75e..841468a 100644
--- a/plugins/libburnia/burn-libisofs.c
+++ b/plugins/libburnia/burn-libisofs.c
@@ -199,7 +199,7 @@ brasero_libisofs_write_image_to_fd_thread (BraseroLibisofs *self)
 
 	BRASERO_JOB_LOG (self, "Writing to pipe");
 	read_bytes = priv->libburn_src->read_xt (priv->libburn_src, buf, sector_size);
-	while (priv->libburn_src->read_xt (priv->libburn_src, buf, sector_size) == sector_size) {
+	while (read_bytes == sector_size) {
 		if (priv->cancel)
 			break;
 
-- 
1.7.10.4

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

Reply via email to