Static analyzer fixes
authorPekka Riikonen <priikone@silcnet.org>
Sun, 27 Apr 2014 07:38:34 +0000 (10:38 +0300)
committerPekka Riikonen <priikone@silcnet.org>
Sun, 27 Apr 2014 07:38:34 +0000 (10:38 +0300)
More small fixes resulting from clang static analysis.

lib/silcasn1/silcasn1.c
lib/silccrypt/md5.c
lib/silcutil/silcbuffmt.c
lib/silcutil/silcfileutil.c
lib/silcutil/silcmime.c
lib/silcutil/silctime.c

index 9b599ffd673cb28c48b6754856e246b5cbe26e6b..567db93e18731af7757de125003f1adb64feec39 100644 (file)
@@ -182,8 +182,6 @@ SilcBool silc_asn1_dump(SilcAsn1 asn1, SilcBuffer src)
 
     if (renc == SILC_BER_ENC_PRIMITIVE)
       len = len + rdata_len;
-    else
-      len = len;
 
     if (len)
       silc_buffer_pull(src, len);
index 58d71a26c15c35cc3902999e85abcf70c0cfd5af..08f9195d55d33764693c1dfa89c4d9d3c88b085e 100644 (file)
@@ -154,7 +154,7 @@ MD5Final(unsigned char digest[16], struct MD5Context *ctx)
   SILC_PUT32_LSB(ctx->buf[1], digest + 4);
   SILC_PUT32_LSB(ctx->buf[2], digest + 8);
   SILC_PUT32_LSB(ctx->buf[3], digest + 12);
-  memset(ctx, 0, sizeof(ctx)); /* In case it's sensitive */
+  memset(ctx, 0, sizeof(*ctx));        /* In case it's sensitive */
 }
 
 #ifndef ASM_MD5
index 98836b61768a3771c2b8a7059db6e7cab728b0d3..864a1b8599057186afa27f90ca2a0de06ea1e314 100644 (file)
@@ -4,7 +4,7 @@
 
   Author: Pekka Riikonen <priikone@silcnet.org>
 
-  Copyright (C) 1997 - 2007 Pekka Riikonen
+  Copyright (C) 1997 - 2014 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
@@ -246,6 +246,8 @@ int silc_buffer_sformat_vp(SilcStack stack, SilcBuffer dst, va_list ap)
          silc_buffer_pull(dst, offst);
          flen += offst;
        } else {
+         if (-(offst) > (int)silc_buffer_headlen(dst))
+           goto fail;
          silc_buffer_push(dst, -(offst));
          flen += -(offst);
        }
index 02620b04b877ee1a91829b24d3bd2cdf8aa2cb45..307ca8b7bd1558ff8a14f8e7e89142e6a6e1768f 100644 (file)
@@ -157,7 +157,7 @@ char *silc_file_readfile(const char *filename, SilcUInt32 *return_len)
   buffer = silc_calloc(filelen + 1, sizeof(char));
 
   if ((silc_file_read(fd, buffer, filelen)) == -1) {
-    memset(buffer, 0, sizeof(buffer));
+    memset(buffer, 0, filelen + 1);
     silc_file_close(fd);
     SILC_LOG_ERROR(("Cannot read from file %s: %s", filename,
                     strerror(errno)));
index 1bd56ccca0afd192d69ed2802eed6ec8c354b212..1a4a14ed520aee1fbfc1918311095164e59edd86 100644 (file)
@@ -241,7 +241,7 @@ SilcMime silc_mime_decode(SilcMime mime, const unsigned char *data,
       }
       silc_free(line);
 
-      for (i = i; i < data_len; i++) {
+      for ( ; i < data_len; i++) {
        /* Get boundary data */
        if (data_len - i >= strlen(b) &&
            tmp[i] == '-' && tmp[i + 1] == '-') {
index 639724c4f9d503cfcd8e4b5d2a482aaa21523029..5a91717213dbdee352a43b501105e5dac90e9c1c 100644 (file)
@@ -224,9 +224,9 @@ SilcBool silc_time_universal(const char *universal_time, SilcTime ret_time)
       return FALSE;
     }
 
-    if (hour < 0 || hour > 23)
+    if (hour > 23)
       return FALSE;
-    if (minute < 0 || minute > 60)
+    if (minute > 60)
       return FALSE;
 
     ret_time->utc_hour   = hour;
@@ -342,9 +342,9 @@ SilcBool silc_time_generalized(const char *generalized_time, SilcTime ret_time)
       return FALSE;
     }
 
-    if (hour < 0 || hour > 23)
+    if (hour > 23)
       return FALSE;
-    if (minute < 0 || minute > 60)
+    if (minute > 60)
       return FALSE;
 
     ret_time->utc_hour   = hour;