diff --git a/Makefile b/Makefile index 1950016..7995b28 100644 --- a/Makefile +++ b/Makefile @@ -24,9 +24,9 @@ JS_PRE := $(wildcard javascript/*pre.js) JS_POST := $(wildcard javascript/*post.js) CPPFLAGS += -Iinclude -Ilib -CFLAGS += -Wall -std=c89 -fPIC -CXXFLAGS += -Wall -std=c++11 -fPIC -LDFLAGS += -Wall +CFLAGS += -Wall -Werror -std=c89 -fPIC +CXXFLAGS += -Wall -Werror -std=c++11 -fPIC +LDFLAGS += -Wall -Werror EMCCFLAGS = --closure 1 --memory-init-file 0 -s NO_FILESYSTEM=1 -s INVOKE_RUN=0 # NO_BROWSER is kept for compatibility with emscripten 1.35.24, but is no diff --git a/src/message.cpp b/src/message.cpp index ff03903..e3c6f6b 100644 --- a/src/message.cpp +++ b/src/message.cpp @@ -136,7 +136,7 @@ static std::uint8_t const * decode( std::uint8_t const * len_start = pos; pos = varint_skip(pos, end); std::size_t len = varint_decode(len_start, pos); - if (len + pos > end) return end; + if (len > std::size_t(end - pos)) return end; value = pos; value_length = len; pos += len; @@ -157,7 +157,7 @@ static std::uint8_t const * skip_unknown( std::uint8_t const * len_start = pos; pos = varint_skip(pos, end); std::size_t len = varint_decode(len_start, pos); - if (len + pos > end) return end; + if (len > std::size_t(end - pos)) return end; pos += len; } else { return end; diff --git a/src/olm.cpp b/src/olm.cpp index afbbbc6..69e02b9 100644 --- a/src/olm.cpp +++ b/src/olm.cpp @@ -191,7 +191,7 @@ const char * olm_account_last_error( OlmAccount * account ) { unsigned error = unsigned(from_c(account)->last_error); - if (error < sizeof(ERRORS)) { + if (error < (sizeof(ERRORS)/sizeof(ERRORS[0]))) { return ERRORS[error]; } else { return "UNKNOWN_ERROR"; @@ -203,7 +203,7 @@ const char * olm_session_last_error( OlmSession * session ) { unsigned error = unsigned(from_c(session)->last_error); - if (error < sizeof(ERRORS)) { + if (error < (sizeof(ERRORS)/sizeof(ERRORS[0]))) { return ERRORS[error]; } else { return "UNKNOWN_ERROR"; @@ -214,7 +214,7 @@ const char * olm_utility_last_error( OlmUtility * utility ) { unsigned error = unsigned(from_c(utility)->last_error); - if (error < sizeof(ERRORS)) { + if (error < (sizeof(ERRORS)/sizeof(ERRORS[0]))) { return ERRORS[error]; } else { return "UNKNOWN_ERROR"; diff --git a/tests/test_olm_decrypt.cpp b/tests/test_olm_decrypt.cpp index 2a2db98..4ec873c 100644 --- a/tests/test_olm_decrypt.cpp +++ b/tests/test_olm_decrypt.cpp @@ -67,7 +67,7 @@ int main() { { TestCase my_test("Olm decrypt test"); -for (int i = 0; i < sizeof(test_cases)/ sizeof(const char *); ++i) { +for (unsigned int i = 0; i < sizeof(test_cases)/ sizeof(const char *); ++i) { decrypt_case(0, test_cases[i]); } diff --git a/tests/test_ratchet.cpp b/tests/test_ratchet.cpp index cbb3c52..8f89048 100644 --- a/tests/test_ratchet.cpp +++ b/tests/test_ratchet.cpp @@ -195,7 +195,7 @@ std::uint8_t random[] = "This is a random 32 byte string"; for (unsigned i = 0; i < 8; ++i) { { std::uint8_t msg[alice.encrypt_output_length(sizeof(plaintext))]; - std::uint8_t encrypt_length = alice.encrypt( + alice.encrypt( plaintext, 15, random, 32, msg, sizeof(msg) ); std::uint8_t output[bob.decrypt_max_plaintext_length(msg, sizeof(msg))]; @@ -206,7 +206,7 @@ for (unsigned i = 0; i < 8; ++i) { random[31]++; { std::uint8_t msg[bob.encrypt_output_length(sizeof(plaintext))]; - std::uint8_t encrypt_length = bob.encrypt( + bob.encrypt( plaintext, 15, random, 32, msg, sizeof(msg) ); std::uint8_t output[alice.decrypt_max_plaintext_length(msg, sizeof(msg))];