diff mbox series

obexd: reject to accept file when replying reject message

Message ID 20230315092954.4182-1-aarongt.shen@gmail.com (mailing list archive)
State Superseded
Headers show
Series 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, 9:29 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, 10:45 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=730242

---Test result---

Test Summary:
CheckPatch                    PASS      0.58 seconds
GitLint                       PASS      0.36 seconds
BuildEll                      PASS      32.08 seconds
BluezMake                     PASS      982.20 seconds
MakeCheck                     PASS      12.92 seconds
MakeDistcheck                 PASS      182.92 seconds
CheckValgrind                 PASS      294.99 seconds
CheckSmatch                   PASS      392.56 seconds
bluezmakeextell               PASS      119.40 seconds
IncrementalBuild              PASS      803.68 seconds
ScanBuild                     PASS      1223.38 seconds



---
Regards,
Linux Bluetooth
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;