Bug 1060129 - obexd fail to receive files if /home/user is a symlink
Summary: obexd fail to receive files if /home/user is a symlink
Status: NEW
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Basesystem (show other bugs)
Version: Current
Hardware: Other Other
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: Stefan Seyfried
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-09-24 21:44 UTC by Bruno Friedmann
Modified: 2017-10-09 06:10 UTC (History)
1 user (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bruno Friedmann 2017-09-24 21:44:14 UTC
TW : bluez-5.46-1.1.x86_64 installed

To reproduce, put /home as symlink to other place like /mydata/home

Pair a device (kde, gnome console) and try to send a file to the computer
The upload failed with

Sep 24 22:56:36 obexd[5044]: CONNECT(0x0), (null)(0xffffffff)
Sep 24 22:56:36 obexd[5044]: CONNECT(0x0), (null)(0x0)
Sep 24 22:56:36 obexd[5044]: PUT(0x2), (null)(0xffffffff)
Sep 24 22:56:36 obexd[5044]: open(/home/me/.cache/obexd/20170924_211447.jpg): Operation not permitted (1)
Sep 24 22:56:36 obexd[5044]: PUT(0x2), FORBIDDEN(0x43)
Sep 24 22:56:36 obexd[5044]: DISCONNECT(0x1), (null)(0xffffffff)
Sep 24 22:56:36 obexd[5044]: DISCONNECT(0x1), SUCCESS(0x20)
Sep 24 22:56:36 obexd[5044]: disconnected: Transport got disconnected
Sep 24 22:56:36 bluetoothd[1272]: Unable to get io data for Object Push: getpeername: Transport endpoint is not connected (107)

The file is correctly created but the transfer fail.
-rw------- 1 me mygrp 0 sep 24 22:56 .cache/obexd/20170924_211447.jpg

If you edit /usr/share/dbus-1/services/org.bluez.obex.service
and change the exec line to

Exec=/usr/lib/bluetooth/obexd -r /mydata/home/me

Then it works as expected.

Seems there's a silly code that don't want to work if /home/${USER} is a symlink.
This has been reported on factory mailing list too.
https://lists.opensuse.org/opensuse-factory/2016-04/msg00067.html

Other reference found https://bugs.launchpad.net/ubuntu/+source/obexd/+bug/1535030
Comment 1 Stefan Seyfried 2017-10-08 20:44:58 UTC
What is your $HOME variable? And $XDG_CACHE_HOME?
Comment 2 Bruno Friedmann 2017-10-09 06:10:39 UTC
echo $HOME
/home/bruno

echo $XDG_CACHE_HOME


XDG_CACHE_HOME is empty.

other env vars
env | grep XDG
XDG_VTNR=7
XDG_SESSION_ID=1
XDG_SESSION_TYPE=x11
XDG_DATA_DIRS=/usr/share
XDG_SESSION_DESKTOP=KDE
XDG_SESSION_CLASS=user
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_CURRENT_DESKTOP=KDE
XDG_SEAT=seat0
XDG_RUNTIME_DIR=/run/user/1502
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
XDG_CONFIG_DIRS=/etc/xdg