OSDN Git Service

gobex: Fix not resetting SRM setup
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Thu, 20 Mar 2014 16:54:48 +0000 (18:54 +0200)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Fri, 21 Mar 2014 14:13:44 +0000 (16:13 +0200)
If SRM is not confirmed by both ends the setup should be disregarded and
the data associated to it can be freed otherwise the next command may
reuse the same setup assuming it is still valid and probably cause SRM
to be enabled without remote consent.

gobex/gobex.c

index 0d9b449..d7d325b 100644 (file)
@@ -400,7 +400,8 @@ static void setup_srm(GObex *obex, GObexPacket *pkt, gboolean outgoing)
                g_obex_header_get_uint8(hdr, &srm);
                g_obex_debug(G_OBEX_DEBUG_COMMAND, "srm 0x%02x", srm);
                set_srm(obex, op, srm);
-       }
+       } else if (!g_obex_srm_enabled(obex))
+               set_srm(obex, op, G_OBEX_SRM_DISABLE);
 
        hdr = g_obex_packet_get_header(pkt, G_OBEX_HDR_SRMP);
        if (hdr != NULL) {