Static analyzer bug fixes
[silc.git] / lib / silccore / silcargument.c
index a98726f86e492d64366f2c05b0ae4ceb944b8722..5a047f3cf20c82c060a794b7530af1d39ec2a123 100644 (file)
@@ -4,7 +4,7 @@
 
   Author: Pekka Riikonen <priikone@silcnet.org>
 
-  Copyright (C) 2001 - 2006 Pekka Riikonen
+  Copyright (C) 2001 - 2007 Pekka Riikonen
 
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -41,7 +41,6 @@ SilcArgumentPayload silc_argument_payload_parse(const unsigned char *payload,
   SilcBufferStruct buffer;
   SilcArgumentPayload newp;
   SilcUInt16 p_len = 0;
-  unsigned char arg_num = 0;
   unsigned char arg_type = 0;
   SilcUInt32 pull_len = 0;
   int i = 0, ret;
@@ -61,14 +60,15 @@ SilcArgumentPayload silc_argument_payload_parse(const unsigned char *payload,
     goto err;
 
   /* Get arguments */
-  arg_num = 1;
   for (i = 0; i < argc; i++) {
     ret = silc_buffer_unformat(&buffer,
                               SILC_STR_UI_SHORT(&p_len),
                               SILC_STR_UI_CHAR(&arg_type),
                               SILC_STR_END);
-    if (ret == -1 || p_len > silc_buffer_len(&buffer) - 3)
+    if (ret == -1 || p_len > silc_buffer_len(&buffer) - 3) {
+      SILC_LOG_DEBUG(("Malformed argument payload"));
       goto err;
+    }
 
     newp->argv_lens[i] = p_len;
     newp->argv_types[i] = arg_type;
@@ -79,8 +79,10 @@ SilcArgumentPayload silc_argument_payload_parse(const unsigned char *payload,
                               SILC_STR_UI_XNSTRING_ALLOC(&newp->argv[i],
                                                          p_len),
                               SILC_STR_END);
-    if (ret == -1)
+    if (ret == -1) {
+      SILC_LOG_DEBUG(("Malformed argument payload"));
       goto err;
+    }
 
     silc_buffer_pull(&buffer, p_len);
     pull_len += 3 + p_len;