From 2559c5da3d5353f97f16b387bff02373b258a3df Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Sun, 27 Apr 2014 10:38:34 +0300 Subject: [PATCH] Static analyzer fixes More small fixes resulting from clang static analysis. --- lib/silcasn1/silcasn1.c | 2 -- lib/silccrypt/md5.c | 2 +- lib/silcutil/silcbuffmt.c | 4 +++- lib/silcutil/silcfileutil.c | 2 +- lib/silcutil/silcmime.c | 2 +- lib/silcutil/silctime.c | 8 ++++---- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/silcasn1/silcasn1.c b/lib/silcasn1/silcasn1.c index 9b599ffd..567db93e 100644 --- a/lib/silcasn1/silcasn1.c +++ b/lib/silcasn1/silcasn1.c @@ -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); diff --git a/lib/silccrypt/md5.c b/lib/silccrypt/md5.c index 58d71a26..08f9195d 100644 --- a/lib/silccrypt/md5.c +++ b/lib/silccrypt/md5.c @@ -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 diff --git a/lib/silcutil/silcbuffmt.c b/lib/silcutil/silcbuffmt.c index 98836b61..864a1b85 100644 --- a/lib/silcutil/silcbuffmt.c +++ b/lib/silcutil/silcbuffmt.c @@ -4,7 +4,7 @@ Author: Pekka Riikonen - 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); } diff --git a/lib/silcutil/silcfileutil.c b/lib/silcutil/silcfileutil.c index 02620b04..307ca8b7 100644 --- a/lib/silcutil/silcfileutil.c +++ b/lib/silcutil/silcfileutil.c @@ -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))); diff --git a/lib/silcutil/silcmime.c b/lib/silcutil/silcmime.c index 1bd56ccc..1a4a14ed 100644 --- a/lib/silcutil/silcmime.c +++ b/lib/silcutil/silcmime.c @@ -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] == '-') { diff --git a/lib/silcutil/silctime.c b/lib/silcutil/silctime.c index 639724c4..5a917172 100644 --- a/lib/silcutil/silctime.c +++ b/lib/silcutil/silctime.c @@ -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; -- 2.24.0