Your message dated Wed, 25 Feb 2009 21:24:38 -0800
with message-id <49a62796.2030...@freebsd.org>
has caused the   report #516577,
regarding libarchive: skip segfaults when using archive_read_open
to be marked as having been forwarded to the upstream software
author(s) John Goerzen <jgoer...@complete.org>

(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 ow...@bugs.debian.org
immediately.)


-- 
516577: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=516577
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Bernhard's patch looks fine; you should feel free
to use that or you can update to libarchive 2.6.2
which includes this and three other very specific
point fixes.

http://libarchive.googlecode.com/

Thanks as always for the reports.

Cheers,

Tim

John Goerzen wrote:
Hi,

I received the below bug report in the Debian BTS.  I recently
upgraded our unstable distribution from 2.4.x to 2.6.1, and it appears
to have started right after that.

-- John

----- Forwarded message from "Bernhard R. Link" <brl...@debian.org> -----

From: "Bernhard R. Link" <brl...@debian.org>
Date: Sun, 22 Feb 2009 14:05:33 +0100
Reply-To: "Bernhard R. Link" <brl...@debian.org>, 516...@bugs.debian.org
To: sub...@bugs.debian.org
Subject: Bug#516577: libarchive: skip segfaults when using archive_read_open

Package: libarchive1
Version: 2.6.1-1
Severity: serious
Tags: patch

When using the old archive_read_open function of libarchive, it calls
libarchive_read_open2 with skipper set to NULL. But that functions
always adds a function calling this one as skipper for source stream.
Which leads to segfaults when the program requests a skip.

I'm setting severity to serious to avoid it migrating to testing, as
it makes reprepro segfault, see #516515.

Attached is a patch which fixes the issue for me.

Hochachtungsvoll,
        Bernhard R. Link

--- a/libarchive-2.6.1/libarchive/archive_read.c        2008-12-28 
21:08:32.000000000 +0100
+++ b/libarchive-2.6.1/libarchive/archive_read.c        2009-02-22 
13:51:48.000000000 +0100
@@ -189,7 +189,8 @@ archive_read_open2(struct archive *_a, v
                source->archive = a;
                source->data = client_data;
                source->read = client_read_proxy;
-               source->skip = client_skip_proxy;
+               if (a->client.skipper != NULL)
+                       source->skip = client_skip_proxy;
                source->close = client_close_proxy;
                a->source = source;
        }


----- End forwarded message -----





--- End Message ---

Reply via email to