summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog2
-rw-r--r--debian/patches/libdiskfs-rename.patch23
-rw-r--r--debian/patches/series1
3 files changed, 26 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 972caf01..c2263895 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -16,6 +16,8 @@ hurd (20090404-2) unreleased; urgency=low
invocation for the hurd package, to fix udeb dependency generation.
* debian/patches/MAKEDEV.patch: New patch to use bash for MAKEDEV.
(Closes: Bug#548587)
+ * debian/patches/libdiskfs-rename.patch: New patch to fix ext2fs hang on
+ renaming directory to something/.
-- Samuel Thibault <sthibault@debian.org> Sun, 23 Aug 2009 19:35:58 +0200
diff --git a/debian/patches/libdiskfs-rename.patch b/debian/patches/libdiskfs-rename.patch
new file mode 100644
index 00000000..e530a6c7
--- /dev/null
+++ b/debian/patches/libdiskfs-rename.patch
@@ -0,0 +1,23 @@
+diff --git a/libdiskfs/dir-rename.c b/libdiskfs/dir-rename.c
+index 747c666..d0e5b60 100644
+--- a/libdiskfs/dir-rename.c
++++ b/libdiskfs/dir-rename.c
+@@ -19,6 +19,7 @@
+
+ #include "priv.h"
+ #include "fs_S.h"
++#include <string.h>
+
+ /* To avoid races in checkpath, and to prevent a directory from being
+ simultaneously renamed by two processes, we serialize all renames of
+@@ -44,6 +45,10 @@ diskfs_S_dir_rename (struct protid *fromcred,
+ if (! tocred)
+ return EXDEV;
+
++ if (!strcmp (fromname, ".") || !strcmp (fromname, "..")
++ || !strcmp (toname, ".") || !strcmp (toname, "..")
++ return EINVAL;
++
+ if (tocred->po->shadow_root != fromcred->po->shadow_root)
+ /* Same translator, but in different shadow trees. */
+ return EXDEV;
diff --git a/debian/patches/series b/debian/patches/series
index f769f1c1..14070207 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -28,3 +28,4 @@ exec_fix.patch -p0
libpthread_recursive_mutex_initializer.patch -p0
pfinet-gcc-4.3-fix.patch -p1
MAKEDEV.patch -p1
+libdiskfs-rename.patch -p1