Fix potential pointer use err in SI95

In SIconnect it was possible for a freed struct to be used
if the session didn't connect.

This change also picks up whitespace changes to the docs.

Issue-ID: RIC-626

Signed-off-by: E. Scott Daniels <daniels@research.att.com>
Change-Id: Ie23f4925c6a29b301f0143e938c11f57f0ed5631
diff --git a/docs/rmr_alloc_msg.3.rst b/docs/rmr_alloc_msg.3.rst
index cc15fbb..9c79c34 100644
--- a/docs/rmr_alloc_msg.3.rst
+++ b/docs/rmr_alloc_msg.3.rst
@@ -1,14 +1,14 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License. 
-.. SPDX-License-Identifier: CC-BY-4.0 
-.. CAUTION: this document is generated from source in doc/src/rtd. 
-.. To make changes edit the source and recompile the document. 
-.. Do NOT make changes directly to .rst or .md files. 
- 
-============================================================================================ 
-Man Page: rmr_alloc_msg 
-============================================================================================ 
- 
- 
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. SPDX-License-Identifier: CC-BY-4.0
+.. CAUTION: this document is generated from source in doc/src/rtd.
+.. To make changes edit the source and recompile the document.
+.. Do NOT make changes directly to .rst or .md files.
+
+============================================================================================
+Man Page: rmr_alloc_msg
+============================================================================================
+
+
 
 
 RMR LIBRARY FUNCTIONS
@@ -19,172 +19,172 @@
 NAME
 ----
 
-rmr_alloc_msg 
+rmr_alloc_msg
 
 
 SYNOPSIS
 --------
 
- 
-:: 
- 
- #include <rmr/rmr.h>
-  
- rmr_mbuf_t* rmr_alloc_msg( void* ctx, int size );
- 
+
+::
+
+  #include <rmr/rmr.h>
+
+  rmr_mbuf_t* rmr_alloc_msg( void* ctx, int size );
+
 
 
 DESCRIPTION
 -----------
 
-The ``rmr_alloc_msg`` function is used to allocate a buffer 
-which the user programme can write into and then send through 
-the RMR library. The buffer is allocated such that sending it 
-requires no additional copying out of the buffer. If the 
-value passed in ``size`` is less than or equal to 0, then the 
-*normal maximum size* supplied on the *rmr_init* call will be 
-used. When *size* is greater than zero, the message allocated 
-will have at least the indicated number of bytes in the 
-payload. There is no maximum size imposed by RMR, however the 
-underlying system memory management (e.g. malloc) functions 
-may impose a limit. 
- 
-The *ctx* parameter is the void context pointer that was 
-returned by the *rmr_init* function. 
- 
-The pointer to the message buffer returned is a structure 
-which has some user application visible fields; the structure 
-is described in ``rmr.h,`` and is illustrated below. 
- 
- 
-:: 
- 
- typedef struct {
-     int state;
-     int mtype;
-     int len;
-     unsigned char* payload;
-     unsigned char* xaction;
-     int sub_id;
-     int tp_state;
- } rmr_mbuf_t;
- 
- 
-Where: 
- 
-   .. list-table:: 
-     :widths: auto 
-     :header-rows: 0 
-     :class: borderless 
-      
-     * - **state** 
-       - 
-         Is the current buffer state. Following a call to 
-         ``rmr_send_msg`` the state indicates whether the buffer was 
-         successfully sent which determines exactly what the payload 
-         points to. If the send failed, the payload referenced by the 
-         buffer is the message that failed to send (allowing the 
-         application to attempt a retransmission). When the state is 
-         ``RMR_OK`` the buffer represents an empty buffer that the 
-         application may fill in in preparation to send. 
-      
-     * - **mtype** 
-       - 
-         When sending a message, the application is expected to set 
-         this field to the appropriate message type value (as 
-         determined by the user programme). Upon send this value 
-         determines how the RMR library will route the message. For a 
-         buffer which has been received, this field will contain the 
-         message type that was set by the sending application. 
-      
-     * - **len** 
-       - 
-         The application using a buffer to send a message is expected 
-         to set the length value to the actual number of bytes that it 
-         placed into the message. This is likely less than the total 
-         number of bytes that the message can carry. For a message 
-         buffer that is passed to the application as the result of a 
-         receive call, this will be the value that the sending 
-         application supplied and should indicate the number of bytes 
-         in the payload which are valid. 
-      
-     * - **payload** 
-       - 
-         The payload is a pointer to the actual received data. The 
-         user programme may read and write from/to the memory 
-         referenced by the payload up until the point in time that the 
-         buffer is used on a ``rmr_send, rmr_call`` or 
-         ``rmr_reply`` function call. Once the buffer has been passed 
-         back to a RMR library function the user programme should 
-         **NOT** make use of the payload pointer. 
-      
-     * - **xaction** 
-       - 
-         The *xaction* field is a pointer to a fixed sized area in the 
-         message into which the user may write a transaction ID. The 
-         ID is optional with the exception of when the user 
-         application uses the ``rmr_call`` function to send a message 
-         and wait for the reply; the underlying RMR processing expects 
-         that the matching reply message will also contain the same 
-         data in the *xaction* field. 
-      
-     * - **sub_id** 
-       - 
-         This value is the subscription ID. It, in combination with 
-         the message type is used by rmr to determine the target 
-         endpoint when sending a message. If the application to 
-         application protocol does not warrant the use of a 
-         subscription ID, the RMR constant RMR_VOID_SUBID should be 
-         placed in this field. When an application is forwarding or 
-         returning a buffer to the sender, it is the application's 
-         responsibility to set/reset this value. 
-      
-     * - **tp_state** 
-       - 
-         For C applications making use of RMR, the state of a 
-         transport based failure will often be available via 
-         ``errno.`` However, some wrapper environments may not have 
-         direct access to the C-lib ``errno`` value. RMR send and 
-         receive operations will place the current value of 
-         ``errno`` into this field which should make it available to 
-         wrapper functions. User applications are strongly cautioned 
-         against relying on the value of errno as some transport 
-         mechanisms may not set this value on all calls. This value 
-         should also be ignored any time the message status is 
-         ``RMR_OK.`` 
-          
- 
+The ``rmr_alloc_msg`` function is used to allocate a buffer
+which the user programme can write into and then send through
+the RMR library. The buffer is allocated such that sending it
+requires no additional copying out of the buffer. If the
+value passed in ``size`` is less than or equal to 0, then the
+*normal maximum size* supplied on the *rmr_init* call will be
+used. When *size* is greater than zero, the message allocated
+will have at least the indicated number of bytes in the
+payload. There is no maximum size imposed by RMR, however the
+underlying system memory management (e.g. malloc) functions
+may impose a limit.
+
+The *ctx* parameter is the void context pointer that was
+returned by the *rmr_init* function.
+
+The pointer to the message buffer returned is a structure
+which has some user application visible fields; the structure
+is described in ``rmr.h,`` and is illustrated below.
+
+
+::
+
+  typedef struct {
+      int state;
+      int mtype;
+      int len;
+      unsigned char* payload;
+      unsigned char* xaction;
+      int sub_id;
+      int tp_state;
+  } rmr_mbuf_t;
+
+
+Where:
+
+    .. list-table::
+      :widths: auto
+      :header-rows: 0
+      :class: borderless
+
+      * - **state**
+        -
+          Is the current buffer state. Following a call to
+          ``rmr_send_msg`` the state indicates whether the buffer was
+          successfully sent which determines exactly what the payload
+          points to. If the send failed, the payload referenced by the
+          buffer is the message that failed to send (allowing the
+          application to attempt a retransmission). When the state is
+          ``RMR_OK`` the buffer represents an empty buffer that the
+          application may fill in in preparation to send.
+
+      * - **mtype**
+        -
+          When sending a message, the application is expected to set
+          this field to the appropriate message type value (as
+          determined by the user programme). Upon send this value
+          determines how the RMR library will route the message. For a
+          buffer which has been received, this field will contain the
+          message type that was set by the sending application.
+
+      * - **len**
+        -
+          The application using a buffer to send a message is expected
+          to set the length value to the actual number of bytes that it
+          placed into the message. This is likely less than the total
+          number of bytes that the message can carry. For a message
+          buffer that is passed to the application as the result of a
+          receive call, this will be the value that the sending
+          application supplied and should indicate the number of bytes
+          in the payload which are valid.
+
+      * - **payload**
+        -
+          The payload is a pointer to the actual received data. The
+          user programme may read and write from/to the memory
+          referenced by the payload up until the point in time that the
+          buffer is used on a ``rmr_send, rmr_call`` or
+          ``rmr_reply`` function call. Once the buffer has been passed
+          back to a RMR library function the user programme should
+          **NOT** make use of the payload pointer.
+
+      * - **xaction**
+        -
+          The *xaction* field is a pointer to a fixed sized area in the
+          message into which the user may write a transaction ID. The
+          ID is optional with the exception of when the user
+          application uses the ``rmr_call`` function to send a message
+          and wait for the reply; the underlying RMR processing expects
+          that the matching reply message will also contain the same
+          data in the *xaction* field.
+
+      * - **sub_id**
+        -
+          This value is the subscription ID. It, in combination with
+          the message type is used by rmr to determine the target
+          endpoint when sending a message. If the application to
+          application protocol does not warrant the use of a
+          subscription ID, the RMR constant RMR_VOID_SUBID should be
+          placed in this field. When an application is forwarding or
+          returning a buffer to the sender, it is the application's
+          responsibility to set/reset this value.
+
+      * - **tp_state**
+        -
+          For C applications making use of RMR, the state of a
+          transport based failure will often be available via
+          ``errno.`` However, some wrapper environments may not have
+          direct access to the C-lib ``errno`` value. RMR send and
+          receive operations will place the current value of
+          ``errno`` into this field which should make it available to
+          wrapper functions. User applications are strongly cautioned
+          against relying on the value of errno as some transport
+          mechanisms may not set this value on all calls. This value
+          should also be ignored any time the message status is
+          ``RMR_OK.``
+
+
 
 
 RETURN VALUE
 ------------
 
-The function returns a pointer to a ``rmr_mbuf`` structure, 
-or NULL on error. 
+The function returns a pointer to a ``rmr_mbuf`` structure,
+or NULL on error.
 
 
 ERRORS
 ------
 
- 
-   .. list-table:: 
-     :widths: auto 
-     :header-rows: 0 
-     :class: borderless 
-      
-     * - **ENOMEM** 
-       - 
-         Unable to allocate memory. 
-          
- 
+
+    .. list-table::
+      :widths: auto
+      :header-rows: 0
+      :class: borderless
+
+      * - **ENOMEM**
+        -
+          Unable to allocate memory.
+
+
 
 
 SEE ALSO
 --------
 
-rmr_tralloc_msg(3), rmr_call(3), rmr_free_msg(3), 
-rmr_init(3), rmr_init_trace(3), rmr_get_trace(3), 
-rmr_get_trlen(3), rmr_payload_size(3), rmr_send_msg(3), 
-rmr_rcv_msg(3), rmr_rcv_specific(3), rmr_rts_msg(3), 
-rmr_ready(3), rmr_fib(3), rmr_has_str(3), rmr_tokenise(3), 
-rmr_mk_ring(3), rmr_ring_free(3), rmr_set_trace(3) 
+rmr_tralloc_msg(3), rmr_call(3), rmr_free_msg(3),
+rmr_init(3), rmr_init_trace(3), rmr_get_trace(3),
+rmr_get_trlen(3), rmr_payload_size(3), rmr_send_msg(3),
+rmr_rcv_msg(3), rmr_rcv_specific(3), rmr_rts_msg(3),
+rmr_ready(3), rmr_fib(3), rmr_has_str(3), rmr_tokenise(3),
+rmr_mk_ring(3), rmr_ring_free(3), rmr_set_trace(3)