bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] trans/fakeroot: override fshelp_isowner


From: Justus Winter
Subject: [PATCH] trans/fakeroot: override fshelp_isowner
Date: Tue, 20 May 2014 09:46:02 +0200

As of recently, fakeroot would fail to create symlinks:

% fakeroot-hurd ln -s foo a
ln: failed to create symbolic link ‘a’: Operation not permitted

Fix this by overriding fshelp_isowner.

Various netfs functions will call fshelp_isowner to check whether USER
is allowed to do some operation.  As fakeroot is not running within
the fakeauth'ed environment, USER contains the real user.

I have no explanation why this ever worked.

* trans/fakeroot.c (fshelp_isowner): New function.
---
 trans/fakeroot.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/trans/fakeroot.c b/trans/fakeroot.c
index d3addc1..32a34ec 100644
--- a/trans/fakeroot.c
+++ b/trans/fakeroot.c
@@ -469,6 +469,16 @@ netfs_validate_stat (struct node *np, struct iouser *cred)
   return 0;
 }
 
+/* Various netfs functions will call fshelp_isowner to check whether
+   USER is allowed to do some operation.  As fakeroot is not running
+   within the fakeauth'ed environment, USER contains the real
+   user.  Hence, we override this check.  */
+error_t
+fshelp_isowner (struct stat *st, struct iouser *user)
+{
+  return 0;
+}
+
 error_t
 netfs_attempt_chown (struct iouser *cred, struct node *np,
                     uid_t uid, uid_t gid)
-- 
2.0.0.rc2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]