Bug 91000

Summary: Syncevolution fails if /home not readable
Product: SyncEvolution Reporter: Graham Cobb <g+syncevolution>
Component: SyncEvolutionAssignee: Patrick Ohly <patrick.ohly>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: syncevolution-issues
Version: unspecified   
Hardware: Other   
OS: All   
i915 platform: i915 features:
Attachments: walk bottom up instead of top down

Description Graham Cobb 2015-06-16 20:41:05 UTC
Note: version 1.5.1

If syncevolution has never been run before (or ~/.config/syncevolution is removed), it fails if all the directories in the $HOME path are not world readable.

Error displayed is:

[ERROR] /home: Permission denied

To reproduce:

As root:

chmod o=x /home

As user:

rm -rf ~/.config/syncevolution

syncevolution --daemon=no --configure --template none username= password= printChanges=1 loglevel=4 Exchange@FilesMaster

Here is an strace extract showing the case when /home is readable:

access("/home/cobb/.config/syncevolution/config.ini", F_OK) = -1 ENOENT (No such file or directory)
access("/home/cobb/.config/syncevolution/filesmaster/config.ini", F_OK) = -1 ENOENT (No such file or directory)
access("/home/cobb/.config/syncevolution/filesmaster/peers/exchange/config.ini", F_OK) = -1 ENOENT (No such file or directory)
open("/home/cobb/.config/syncevolution/.internal.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
access("/home", R_OK|X_OK)              = 0
access("/home/cobb", R_OK|X_OK)         = 0
access("/home/cobb/.config", R_OK|X_OK) = 0
access("/home/cobb/.config/syncevolution", R_OK|W_OK|X_OK) = -1 ENOENT (No such file or directory)
mkdir("/home/cobb/.config/syncevolution", 0700) = 0

The "access("/home", R_OK|X_OK)" fails if /home is executable but not readable.
Comment 1 Graham Cobb 2015-06-16 20:49:29 UTC
Actually, the problem is worse: it doesn't just happen if ~/.config/syncevolution does not exist.  Presumably it happens when various directories or files need to be created in the .config tree.
Comment 2 Patrick Ohly 2015-08-14 16:47:24 UTC
Created attachment 117691 [details] [review]
walk bottom up instead of top down

This patch is currently pending automatic testing. Manual testing shows that it addresses the issue.
Comment 3 Patrick Ohly 2016-09-21 08:30:55 UTC
Part of for-master/master-next, will be in SyncEvolution 1.5.2.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.