Dereference before null (nil) check 87/4787/1
authorJuha Hyttinen <juha.hyttinen@nokia.com>
Tue, 29 Sep 2020 10:05:01 +0000 (13:05 +0300)
committerJuha Hyttinen <juha.hyttinen@nokia.com>
Tue, 29 Sep 2020 10:27:45 +0000 (13:27 +0300)
Change-Id: Iba704e5fcb0b9091ec35601480475021c60372b5
Signed-off-by: Juha Hyttinen <juha.hyttinen@nokia.com>
pkg/xapp/rmr.go

index 9f988dc..e27d46e 100755 (executable)
@@ -313,6 +313,10 @@ func (m *RMRClient) SendWithRetry(params *RMRParams, isRts bool, to time.Duratio
 
 func (m *RMRClient) CopyBuffer(params *RMRParams) *C.rmr_mbuf_t {
 
+       if params == nil {
+               return nil
+       }
+
        payLen := len(params.Payload)
        if params.PayloadLen != 0 {
                payLen = params.PayloadLen
@@ -337,20 +341,21 @@ func (m *RMRClient) CopyBuffer(params *RMRParams) *C.rmr_mbuf_t {
        datap := C.CBytes(params.Payload)
        defer C.free(datap)
 
-       if params != nil {
-               if params.Meid != nil {
-                       b := make([]byte, int(C.RMR_MAX_MEID))
-                       copy(b, []byte(params.Meid.RanName))
-                       C.rmr_bytes2meid(txBuffer, (*C.uchar)(unsafe.Pointer(&b[0])), C.int(len(b)))
-               }
-               xidLen := len(params.Xid)
-               if xidLen > 0 && xidLen <= C.RMR_MAX_XID {
-                       b := make([]byte, int(C.RMR_MAX_XID))
-                       copy(b, []byte(params.Xid))
-                       C.rmr_bytes2xact(txBuffer, (*C.uchar)(unsafe.Pointer(&b[0])), C.int(len(b)))
-               }
+       if params.Meid != nil {
+               b := make([]byte, int(C.RMR_MAX_MEID))
+               copy(b, []byte(params.Meid.RanName))
+               C.rmr_bytes2meid(txBuffer, (*C.uchar)(unsafe.Pointer(&b[0])), C.int(len(b)))
        }
+
+       xidLen := len(params.Xid)
+       if xidLen > 0 && xidLen <= C.RMR_MAX_XID {
+               b := make([]byte, int(C.RMR_MAX_XID))
+               copy(b, []byte(params.Xid))
+               C.rmr_bytes2xact(txBuffer, (*C.uchar)(unsafe.Pointer(&b[0])), C.int(len(b)))
+       }
+
        C.write_bytes_array(txBuffer.payload, datap, txBuffer.len)
+
        return txBuffer
 }