(this is actually the first bug I ever file so err...bear with me xD)
So, when I go try to open any of the 7zip files that I have with the GUI,
Xarchiver crashes. I tried dragging and dropping, using "Open" in Xarchiver,
and clicking on my 7zip archive to open with Xarchiver. I tried different
archives, too, with no luck. Xarchiver just won't open them!
...but, I tried "xarchiver -x dir-name file.7z" which seemed to work.
And perhaps there's something missing from my system. (if so then I'd probably
have to go to the packager about dependencies, hah)
======= Backtrace: =========
/lib/libc.so.6[0x7f5228c2aa76]
/lib/libc.so.6(cfree+0x6c)[0x7f5228c2f44c]
xarchiver[0x413814]
/usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x22e)[0x7f5228f47dee]
/usr/lib/libglib-2.0.so.0[0x7f5228f4b4b8]
/usr/lib/libglib-2.0.so.0(g_main_loop_run+0x1a5)[0x7f5228f4b915]
/usr/lib/libgtk-x11-2.0.so.0(gtk_main+0xa7)[0x7f522b07c8c7]
xarchiver[0x410651]
/lib/libc.so.6(__libc_start_main+0xfd)[0x7f5228bd79ed]
xarchiver[0x40d2b9]
Yeah. Like I said, using xarchiver by the command line worked flawlessly. But
here's the thing, I'm pretty sure Xarchiver didn't crash before p7zip was
updated recently. Maybe that's the issue? I also did try reinstalling p7zip.
Aye.
And unfortunately, I'm not sure what to do. Are you asking me to compile
xarchiver, and then "gdb path/to/binary?"
> 1) Can you tell me please the p7zip version you are using?
p7zip is version 9.04
> 2) Also if you create a 7z archive within Xarchiver and try to reopen it, does
> it crash?
Xarchiver doesn't crash. However xarchiver doesn't add the files I want to
add, but some really odd files. (I was trying to add some images in that
screenshot)
All I get from gdb is this (I ran "gdb xarchiver-location pid" and then
"continue" and then opened a 7zip archive...):
Program received signal SIGABRT, Aborted. 0x00007f88248ac2d5 in raise () from
/lib/libc.so.6
I can confirm this bug.
I believe it might be related to the fact Arch switched from lzma-utils to xz-utils which isn't supported by xarchiver yet.
Thank you, gt67, for this hint. Indeed, on my machine xarchiver 5.2 works with p7zip 4.65 but not with version 9.04. (Under OpenSuse 11.2 64 bit.)
Found the problem. Xarchiver identifes the end of the header at "-" before the header ends there is "--" which breaks the file list. Here is a patch to fix it.
[code]
diff -Nur xarchiver-0.5.2.orig/src/7zip.c xarchiver-0.5.2/src/7zip.c
--- xarchiver-0.5.2.orig/src/7zip.c 2008-10-25 00:41:17.000000000 +1300
+++ xarchiver-0.5.2/src/7zip.c 2010-12-13 16:20:06.000000000 +1300
@@ -72,7 +72,7 @@
if (jump_header == FALSE)
{
- if (line[0] == '-')
+ if ((line[0] == '-') && (line[3] != NULL))
{
jump_header = TRUE;
return;
[/code]
Hi b-71,
I applied your patch since I'm getting troubles opening 7z archives but I still get the crash:
0x0012e416 in __kernel_vsyscall ()
(gdb) bt
#0 0x0012e416 in __kernel_vsyscall ()
#1 0x00a37941 in raise () from /lib/libc.so.6
#2 0x00a3ae42 in abort () from /lib/libc.so.6
#3 0x00a6f305 in ?? () from /lib/libc.so.6
#4 0x00a79501 in ?? () from /lib/libc.so.6
#5 0x00a7ad70 in ?? () from /lib/libc.so.6
#6 0x00a7de5d in free () from /lib/libc.so.6
#7 0x0096a486 in g_free () from /lib/libglib-2.0.so.0
#8 0x0805785c in xa_process_output (ioc=0xbfffeb80, cond=17, data=0xb65ff4)
at archive.c:201
This line is:
201: g_free(line);
but the pointer must be changed elsewhere in the code since I have first at line 194:
if (line != NULL)
I think also the output produced by 7za executable must be changed. Would you like to give a look please?
Thamks
Giuseppe