ecryptfs team mailing list archive
-
ecryptfs team
-
Mailing list archive
-
Message #00513
[Bug 322532] Re: ecryptfs does not handle symlinks within bzr
Jamie-
A few notes...
* I'm going to add bzr to the affected packages, in case those guys have an idea of what might be going on, and what this error actually means. Its possible that bzr is doing something "smart" by looking at underlying data, perhaps?
This looks to be a regression in the ecryptfs kernel code, probably
introduced by the filename encryption patch.
Testing your methodology on an ecryptfs WITH filename encryption, it
seems to work fine. However, WITHOUT filename encryption, symlink
creation seems to break.
I'm pretty sure it has something to do with the actual creation of the
symlink. If I untar the tarball in /tmp first, and then rsync -aP to my
Private directory, the problem does not exist. I don't understand the
difference between the way tar creates symlinks and rsync does, but
whatever that difference is, seems to trigger the problem.
I'm subscribing Tyler to the bug. Hopefully he can track down the fix.
:-Dustin
** Also affects: linux (Ubuntu)
Importance: Undecided
Status: New
** Changed in: ecryptfs-utils (Ubuntu)
Importance: Undecided => High
Assignee: (unassigned) => Tyler Hicks (tyhicks)
Status: New => Confirmed
--
ecryptfs does not handle symlinks within bzr
https://bugs.launchpad.net/bugs/322532
You received this bug notification because you are a member of eCryptfs,
which is subscribed to ecryptfs-utils in ubuntu.
Status in “bzr” source package in Ubuntu: New
Status in “ecryptfs-utils” source package in Ubuntu: Confirmed
Status in “linux” source package in Ubuntu: New
Bug description:
Binary package hint: ecryptfs-utils
I have an encrypted ~/Private directory. If I have a bzr tree with symlinks in it, then the bzr tree is corrupted and unusable. Attached is a tarball of a bzr tree. Here is how to reproduce:
$ tar -zxvf ./bzr_links.tar.gz
bzr_links/
bzr_links/.bzr/
bzr_links/.bzr/repository/
...
bzr_links/bar
bzr_links/foo
$ cd bzr_links/
$ bzr status
modified:
bar@
$ bzr diff
bzr: ERROR: The dirstate file (DirState(u'/home/jamie/Private/tmp/bzr_links/.bzr/checkout/dirstate')) appears to be corrupt: Bad parse, we expected to end on \n, not: 51 jamie@xxxxxxxxxxxxx-20090128230411-z2544pvd154m265m: (('', 'bar', 'bar-20090128230356-oc73poh1gp2zfkho-1'), [('l', 'foo', 0L, 0, 'n'), ('AAAAA0mA6eVJgOnlAAAAGQAQow4AAKH/', 'l', 0L, 0, 'n')])
Do the above in a non-encrypted directory (on an ext3 partition) yields:
$ tar -zxvf ./bzr_links.tar.gz
bzr_links/
bzr_links/.bzr/
bzr_links/.bzr/repository/
...
bzr_links/bar
bzr_links/foo
$ cd bzr_links/
$ bzr status
$ bzr diff
$
The bzr tree was created like so:
$ mkdir bzr_links
$ cd bzr_links
$ bzr init
$ touch foo
$ bzr add
$ bzr ci
$ ln -s foo bar
$ bzr add
$ bzr ci
$ cd ../
$ tar -zcvf ./bzr_links.tar.gz ./bzr_links
References