summaryrefslogtreecommitdiff
path: root/libre/xarchiver-libre/xarchiver-0.5.2-segfault-password-protected.patch
diff options
context:
space:
mode:
authorNicolás Reynolds <fauno@endefensadelsl.org>2014-02-03 14:09:45 -0300
committerNicolás Reynolds <fauno@endefensadelsl.org>2014-02-03 14:09:45 -0300
commit308f6ff034c928c0c4fc2ce168df7192ca2b1209 (patch)
tree49603bf604b0d3b3e4e0f1d71d0a52380933aa36 /libre/xarchiver-libre/xarchiver-0.5.2-segfault-password-protected.patch
parent99d72f453ab00a43e11f6903bf34d6cd27962a4f (diff)
parent964755f48fefde84fce71781d0744e2158f60814 (diff)
downloadabslibre-308f6ff034c928c0c4fc2ce168df7192ca2b1209.tar.gz
abslibre-308f6ff034c928c0c4fc2ce168df7192ca2b1209.tar.bz2
abslibre-308f6ff034c928c0c4fc2ce168df7192ca2b1209.zip
Merge branch 'master' of vparabola:abslibre
Conflicts: pcr/pandoc/PKGBUILD
Diffstat (limited to 'libre/xarchiver-libre/xarchiver-0.5.2-segfault-password-protected.patch')
-rw-r--r--libre/xarchiver-libre/xarchiver-0.5.2-segfault-password-protected.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/libre/xarchiver-libre/xarchiver-0.5.2-segfault-password-protected.patch b/libre/xarchiver-libre/xarchiver-0.5.2-segfault-password-protected.patch
new file mode 100644
index 000000000..a1fa1f2ca
--- /dev/null
+++ b/libre/xarchiver-libre/xarchiver-0.5.2-segfault-password-protected.patch
@@ -0,0 +1,43 @@
+diff -Naur xarchiver-0.5.2.orig/src/window.c xarchiver-0.5.2/src/window.c
+--- xarchiver-0.5.2.orig/src/window.c 2014-01-24 08:10:09.305990000 +0100
++++ xarchiver-0.5.2/src/window.c 2014-01-24 08:42:45.110729290 +0100
+@@ -1694,7 +1694,7 @@
+ {
+ if (archive->passwd == NULL)
+ {
+- archive->passwd = xa_create_password_dialog(NULL);
++ archive->passwd = xa_create_password_dialog(archive);
+ if ( archive->passwd == NULL)
+ {
+ gtk_drag_finish (dc,FALSE,FALSE,t);
+@@ -2702,9 +2702,12 @@
+
+ if (entry->is_encrypted)
+ {
+- archive[idx]->passwd = xa_create_password_dialog(archive[idx]);
+ if (archive[idx]->passwd == NULL)
+- return;
++ {
++ archive[idx]->passwd = xa_create_password_dialog(archive[idx]);
++ if (archive[idx]->passwd == NULL)
++ return;
++ }
+ }
+ filename = g_strconcat(archive[idx]->tmp,"/",entry->filename,NULL);
+ if (g_file_test(filename,G_FILE_TEST_EXISTS))
+@@ -2766,6 +2769,15 @@
+ /* The selected entry it's not a dir so extract it to the tmp dir and send it to xa_determine_program_to_run() */
+ else
+ {
++ if (entry->is_encrypted)
++ {
++ if (archive->passwd == NULL)
++ {
++ archive->passwd = xa_create_password_dialog(archive);
++ if (archive->passwd == NULL)
++ return;
++ }
++ }
+ if (archive->extraction_path)
+ {
+ dummy = g_strdup(archive->extraction_path);