diff mbox series

[BlueZ] obexd: reject to accept file when replying reject message

Message ID 20230315100435.5424-1-aarongt.shen@gmail.com (mailing list archive)
State Accepted
Commit 338ba4352b6cadafe61808c21302c0abe2168e02
Headers show
Series [BlueZ] obexd: reject to accept file when replying reject message | expand

Checks

Context Check Description
tedd_an/pre-ci_am success Success
tedd_an/CheckPatch success CheckPatch PASS
tedd_an/GitLint success Gitlint PASS
tedd_an/BuildEll success Build ELL PASS
tedd_an/BluezMake success Bluez Make PASS
tedd_an/MakeCheck success Bluez Make Check PASS
tedd_an/MakeDistcheck success Make Distcheck PASS
tedd_an/CheckValgrind success Check Valgrind PASS
tedd_an/CheckSmatch success CheckSparse PASS
tedd_an/bluezmakeextell success Make External ELL PASS
tedd_an/IncrementalBuild success Incremental Build PASS
tedd_an/ScanBuild success Scan Build PASS

Commit Message

Guiting Shen March 15, 2023, 10:04 a.m. UTC
It will accept file when obex agent replied any message
event though the message is org.bluez.obex.Error.Rejected.
The patch helps to reject a Bluetooth object push request if
user replied "org.bluez.obex.Error.Rejected" message according
to the doc/obex-agent-api.txt.
---
 obexd/src/manager.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

bluez.test.bot@gmail.com March 15, 2023, 11:10 a.m. UTC | #1
This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=730253

---Test result---

Test Summary:
CheckPatch                    PASS      0.51 seconds
GitLint                       PASS      0.33 seconds
BuildEll                      PASS      26.74 seconds
BluezMake                     PASS      755.96 seconds
MakeCheck                     PASS      10.87 seconds
MakeDistcheck                 PASS      151.05 seconds
CheckValgrind                 PASS      243.76 seconds
CheckSmatch                   PASS      326.15 seconds
bluezmakeextell               PASS      98.46 seconds
IncrementalBuild              PASS      612.42 seconds
ScanBuild                     PASS      975.66 seconds



---
Regards,
Linux Bluetooth
patchwork-bot+bluetooth@kernel.org March 21, 2023, 4 p.m. UTC | #2
Hello:

This patch was applied to bluetooth/bluez.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:

On Wed, 15 Mar 2023 18:04:35 +0800 you wrote:
> It will accept file when obex agent replied any message
> event though the message is org.bluez.obex.Error.Rejected.
> The patch helps to reject a Bluetooth object push request if
> user replied "org.bluez.obex.Error.Rejected" message according
> to the doc/obex-agent-api.txt.
> ---
>  obexd/src/manager.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)

Here is the summary with links:
  - [BlueZ] obexd: reject to accept file when replying reject message
    https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=338ba4352b6c

You are awesome, thank you!
diff mbox series

Patch

diff --git a/obexd/src/manager.c b/obexd/src/manager.c
index 01741fe62..849928603 100644
--- a/obexd/src/manager.c
+++ b/obexd/src/manager.c
@@ -38,6 +38,7 @@ 
 #define TRANSFER_INTERFACE OBEXD_SERVICE ".Transfer1"
 #define SESSION_INTERFACE OBEXD_SERVICE ".Session1"
 #define AGENT_INTERFACE OBEXD_SERVICE ".Agent1"
+#define OBEX_ERROR_REJECT      "org.bluez.obex.Error.Rejected"
 
 #define TIMEOUT 60*1000 /* Timeout for user response (miliseconds) */
 
@@ -45,6 +46,7 @@  struct agent {
 	char *bus_name;
 	char *path;
 	gboolean auth_pending;
+	gboolean auth_reject;
 	char *new_name;
 	char *new_folder;
 	unsigned int watch_id;
@@ -631,6 +633,9 @@  static void agent_reply(DBusPendingCall *call, void *user_data)
 		if (dbus_error_has_name(&derr, DBUS_ERROR_NO_REPLY))
 			agent_cancel();
 
+		if (dbus_error_has_name(&derr, OBEX_ERROR_REJECT))
+			agent->auth_reject = TRUE;
+
 		dbus_error_free(&derr);
 		dbus_message_unref(reply);
 		return;
@@ -694,6 +699,7 @@  int manager_request_authorization(struct obex_transfer *transfer,
 	dbus_message_unref(msg);
 
 	agent->auth_pending = TRUE;
+	agent->auth_reject  = FALSE;
 	got_reply = FALSE;
 
 	/* Catches errors before authorization response comes */
@@ -716,7 +722,7 @@  int manager_request_authorization(struct obex_transfer *transfer,
 
 	dbus_pending_call_unref(call);
 
-	if (!agent || !agent->new_name)
+	if (!agent || !agent->new_name || agent->auth_reject)
 		return -EPERM;
 
 	*new_folder = agent->new_folder;