Merge pull request #3 from tkummermehr/Fix_CDEV_Write
authorFulup Ar Foll <fulup@iot.bzh>
Thu, 13 Jul 2017 21:42:37 +0000 (23:42 +0200)
committerGitHub <noreply@github.com>
Thu, 13 Jul 2017 21:42:37 +0000 (23:42 +0200)
Fix crash of TX CDEV write, when there is many traffic

ucs2-afb/ucs_binding.c

index 1819407..ba49e20 100644 (file)
@@ -154,7 +154,6 @@ PUBLIC void UCSI_CB_SendMostMessage(void *pTag, const uint8_t *pData, uint32_t l
     CdevData_t *cdevTx = &ucsContext->tx;
     uint32_t total = 0;
 
-
     if (NULL == pData || 0 == len) return;
 
     if (O_RDONLY == cdevTx->fileFlags) return;
@@ -167,13 +166,11 @@ PUBLIC void UCSI_CB_SendMostMessage(void *pTag, const uint8_t *pData, uint32_t l
         ssize_t written = write(cdevTx->fileHandle, &pData[total], (len - total));
         if (0 >= written)
         {
-            cdevTx->fileHandle = -1;
-            return;
+            /* Silently ignore write error (only occur in non-blocking mode) */
+            break;
         }
         total += (uint32_t) written;
     }
-
-    return;
 }
 
 /**