diff --git a/mc-fileguicrash.patch b/mc-fileguicrash.patch new file mode 100644 index 0000000..55b084b --- /dev/null +++ b/mc-fileguicrash.patch @@ -0,0 +1,12 @@ +diff -up mc-4.7.4/src/filegui.c.fileguicrash mc-4.7.4/src/filegui.c +--- mc-4.7.4/src/filegui.c.fileguicrash 2010-09-07 09:16:44.000000000 +0200 ++++ mc-4.7.4/src/filegui.c 2010-12-09 08:53:07.950820700 +0100 +@@ -343,7 +343,7 @@ file_op_context_create_ui_without_init ( + if ((right_panel == current_panel) && !classic_progressbar) + { + ui->progress_file_gauge->from_left_to_right = FALSE; +- if (dialog_type == FILEGUI_DIALOG_MULTI_ITEM) ++ if (verbose && dialog_type == FILEGUI_DIALOG_MULTI_ITEM) + ui->progress_total_gauge->from_left_to_right = FALSE; + } + } diff --git a/mc-vfscrash.patch b/mc-vfscrash.patch new file mode 100644 index 0000000..4def655 --- /dev/null +++ b/mc-vfscrash.patch @@ -0,0 +1,29 @@ +diff -up mc-4.7.4/lib/vfs/mc-vfs/direntry.c.vfscrash mc-4.7.4/lib/vfs/mc-vfs/direntry.c +--- mc-4.7.4/lib/vfs/mc-vfs/direntry.c.vfscrash 2010-09-07 09:16:43.000000000 +0200 ++++ mc-4.7.4/lib/vfs/mc-vfs/direntry.c 2010-12-09 08:50:40.695756257 +0100 +@@ -787,8 +787,12 @@ vfs_s_open (struct vfs_class *me, const + } + + split_dir_name (me, q, &dirname, &name, &save); +- /* FIXME: check if vfs_s_find_inode returns NULL */ + dir = vfs_s_find_inode (me, super, dirname, LINK_FOLLOW, FL_DIR); ++ if (dir == NULL) ++ { ++ g_free (q); ++ return NULL; ++ } + if (save) + *save = PATH_SEP; + ent = vfs_s_generate_entry (me, name, dir, 0755); +diff -up mc-4.7.4/lib/vfs/mc-vfs/gc.c.vfscrash mc-4.7.4/lib/vfs/mc-vfs/gc.c +--- mc-4.7.4/lib/vfs/mc-vfs/gc.c.vfscrash 2010-09-07 09:16:43.000000000 +0200 ++++ mc-4.7.4/lib/vfs/mc-vfs/gc.c 2010-12-09 08:51:30.500778054 +0100 +@@ -195,7 +195,7 @@ vfs_stamp_create (struct vfs_class *oldv + n3vfsid = NULL; + } + +- if (!oldvfs->nothingisopen || !(*oldvfs->nothingisopen) (oldvfsid)) ++ if (!oldvfs || !oldvfs->nothingisopen || !(*oldvfs->nothingisopen) (oldvfsid)) + return; + + vfs_addstamp (oldvfs, oldvfsid); diff --git a/mc.spec b/mc.spec index e55510c..e391a70 100644 --- a/mc.spec +++ b/mc.spec @@ -1,7 +1,7 @@ Summary: User-friendly text console file manager and visual shell Name: mc Version: 4.7.4 -Release: 2%{?dist} +Release: 3%{?dist} Epoch: 1 License: GPLv2 Group: System Environment/Shells @@ -15,6 +15,8 @@ Requires: dev >= 3.3-3 Patch0: mc-extensions.patch Patch1: mc-mcviewsegfault.patch Patch2: mc-globfix.patch +Patch3: mc-vfscrash.patch +Patch4: mc-fileguicrash.patch %description Midnight Commander is a visual shell much like a file manager, only @@ -28,6 +30,8 @@ specific files. %patch0 -p1 -b .extensions %patch1 -p1 -b .mcviewsegfault %patch2 -p1 -b .globfix +%patch3 -p1 -b .vfscrash +%patch4 -p1 -b .fileguicrash %build export CFLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $RPM_OPT_FLAGS -Wno-strict-aliasing" @@ -89,6 +93,11 @@ rm -rf $RPM_BUILD_ROOT %dir %{_libexecdir}/mc/extfs.d %changelog +* Thu Dec 9 2010 Jindrich Novy 4.7.4-3 +- fix crash in progress bar handling (#643256) +- fix crash in opening mc VFS (#661290, #588795, #653156) +- fix crash while creating a VFS timestamp (#660308) + * Thu Oct 7 2010 Jindrich Novy 4.7.4-2 - fix globbing (#629679), thanks to Denys Vlasenko - don't use vcsa for cons.saver (#640365)