Browse Source

smb_message: replace asserts with actual basic error handling (refs #50)

Felix Paul Kühne 9 years ago
parent
commit
77de803077
1 changed files with 15 additions and 9 deletions
  1. 15 9
      src/smb_message.c

+ 15 - 9
src/smb_message.c

@@ -6,7 +6,7 @@
  *   |______  /_______  /_______  \____|__  / /\   \____|__  |__|\___ |   __
  *          \/        \/        \/        \/  )/           \/        \/   \/
  *
- * This file is part of liBDSM. Copyright © 2014-2015 VideoLabs SAS
+ * This file is part of liBDSM. Copyright © 2014-2016 VideoLabs SAS
  *
  * Author: Julien 'Lta' BALLET <contact@lta.io>
  *
@@ -28,7 +28,6 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
-#include <assert.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -86,7 +85,8 @@ smb_message   *smb_message_grow(smb_message *msg, size_t size)
 {
     smb_message *copy;
 
-    assert(msg != NULL && msg->packet != NULL);
+    if (msg == NULL || msg->packet == NULL)
+        return NULL;
 
     copy = malloc(sizeof(smb_message));
     if (!copy)
@@ -115,7 +115,8 @@ void            smb_message_destroy(smb_message *msg)
 int             smb_message_append(smb_message *msg, const void *data,
                                    size_t data_size)
 {
-    assert(msg != NULL && data != NULL);
+    if (msg == NULL || data == NULL)
+        return -1;
 
     if (smb_message_expand_payload(msg, msg->cursor, data_size) == 0)
         return 0;
@@ -131,7 +132,8 @@ int             smb_message_append(smb_message *msg, const void *data,
 int             smb_message_insert(smb_message *msg, size_t cursor,
                                    const void *data, size_t data_size)
 {
-    assert(msg != NULL && data != NULL);
+    if (msg == NULL || data == NULL)
+        return -1;
 
     if (smb_message_expand_payload(msg, cursor, data_size) == 0)
         return 0;
@@ -143,7 +145,8 @@ int             smb_message_insert(smb_message *msg, size_t cursor,
 
 int             smb_message_advance(smb_message *msg, size_t size)
 {
-    assert(msg != NULL);
+    if (msg == NULL)
+        return -1;
 
     if (smb_message_expand_payload(msg, msg->cursor, size) == 0)
         return 0;
@@ -196,7 +199,8 @@ size_t          smb_message_put_utf16(smb_message *msg, const char *str,
 int             smb_message_put_uuid(smb_message *msg, uint32_t a, uint16_t b,
                                      uint16_t c, const uint8_t d[8])
 {
-    assert(msg != NULL);
+    if (msg == NULL)
+        return -1;
 
     if (!smb_message_put32(msg, a))
         return 0;
@@ -215,7 +219,8 @@ void            smb_message_flag(smb_message *msg, uint32_t flag, int value)
 {
     uint32_t      *flags;
 
-    assert(msg != NULL && msg->packet != NULL);
+    if (msg == NULL || msg->packet == NULL)
+        return;
 
     // flags + flags2 is actually 24 bit long, we have to be cautious
     flags = (uint32_t *)&(msg->packet->header.flags);
@@ -232,7 +237,8 @@ void            smb_message_set_andx_members(smb_message *msg)
     // This could have been any type with the 'SMB_ANDX_MEMBERS';
     smb_session_req   *req;
 
-    assert(msg != NULL);
+    if (msg == NULL)
+        return;
 
     req = (smb_session_req *)msg->packet->payload;
     req->andx           = 0xff;