You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ma...@apache.org on 2016/11/22 01:17:24 UTC

[25/27] incubator-mynewt-core git commit: oic; fix use-after-free when using IP together with other transports. Message was getting freed by IP before it is delivered to others.

oic; fix use-after-free when using IP together with other transports.
Message was getting freed by IP before it is delivered to others.


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/bdc5c120
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/bdc5c120
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/bdc5c120

Branch: refs/heads/develop
Commit: bdc5c1202a542877c2d80a69101dab4392a3a4df
Parents: 408077e
Author: Marko Kiiskila <ma...@runtime.io>
Authored: Mon Nov 21 16:47:28 2016 -0800
Committer: Marko Kiiskila <ma...@runtime.io>
Committed: Mon Nov 21 17:15:49 2016 -0800

----------------------------------------------------------------------
 net/oic/src/port/mynewt/adaptor.c | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/bdc5c120/net/oic/src/port/mynewt/adaptor.c
----------------------------------------------------------------------
diff --git a/net/oic/src/port/mynewt/adaptor.c b/net/oic/src/port/mynewt/adaptor.c
index ea33f58..40785c2 100644
--- a/net/oic/src/port/mynewt/adaptor.c
+++ b/net/oic/src/port/mynewt/adaptor.c
@@ -94,6 +94,7 @@ oc_send_buffer(oc_message_t *message)
 
 void oc_send_multicast_message(oc_message_t *message)
 {
+    oc_message_add_ref(message);
 
     /* send on all the transports.  Don't forget to reference the message
      * so it doesn't get deleted  */
@@ -113,6 +114,8 @@ void oc_send_multicast_message(oc_message_t *message)
     oc_message_add_ref(message);
     oc_send_buffer_serial(message);
 #endif
+
+    oc_message_unref(message);
 }
 
 void