From 8b9b6a54be5490449e0c5e535aa257d6406b04b2 Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Wed, 19 Jul 2017 00:57:19 +0200 Subject: [PATCH] Remove error string from sodium_misuse() Returning the name of an internal function to bindings is useless. They need way more context to recover from these errors, and their own backtrace will be way more useful for diagnostics. --- .../aes256gcm/aesni/aead_aes256gcm_aesni.c | 4 +- .../sodium/aead_chacha20poly1305.c | 4 +- .../sodium/aead_xchacha20poly1305.c | 2 +- .../blake2b/ref/blake2b-ref.c | 46 +++++++++---------- src/libsodium/crypto_kx/crypto_kx.c | 4 +- .../scryptsalsa208sha256/pbkdf2-sha256.c | 2 +- .../chacha20/dolbeau/chacha20_dolbeau-avx2.c | 2 +- .../chacha20/dolbeau/chacha20_dolbeau-ssse3.c | 2 +- .../crypto_stream/chacha20/ref/chacha20_ref.c | 2 +- src/libsodium/include/sodium/core.h | 4 +- .../nativeclient/randombytes_nativeclient.c | 4 +- src/libsodium/randombytes/randombytes.c | 2 +- .../salsa20/randombytes_salsa20_random.c | 14 +++--- .../sysrandom/randombytes_sysrandom.c | 10 ++-- src/libsodium/sodium/core.c | 10 ++-- src/libsodium/sodium/utils.c | 10 ++-- test/default/sodium_core.c | 8 ++-- test/default/sodium_core.exp | 2 +- 18 files changed, 66 insertions(+), 66 deletions(-) diff --git a/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c b/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c index e3d37a74..1e787f3f 100644 --- a/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c +++ b/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c @@ -525,7 +525,7 @@ crypto_aead_aes256gcm_encrypt_detached_afternm(unsigned char *c, (void) nsec; memcpy(H, ctx->H, sizeof H); if (mlen > 16ULL * ((1ULL << 32) - 2)) { - sodium_misuse("crypto_aead_aes256gcm_encrypt_detached_afternm(): message too long"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } memcpy(&n2[0], npub, 3 * 4); n2[3] = 0x01000000; @@ -663,7 +663,7 @@ crypto_aead_aes256gcm_decrypt_detached_afternm(unsigned char *m, unsigned char * (void) nsec; if (clen > 16ULL * (1ULL << 32)) { - sodium_misuse("crypto_aead_aes256gcm_decrypt_detached_afternm(): ciphertext too long"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } mlen = clen; diff --git a/src/libsodium/crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c b/src/libsodium/crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c index f2359462..cd5c3484 100644 --- a/src/libsodium/crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c +++ b/src/libsodium/crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c @@ -71,7 +71,7 @@ crypto_aead_chacha20poly1305_encrypt(unsigned char *c, int ret; if (mlen > UINT64_MAX - crypto_aead_chacha20poly1305_ABYTES) { - sodium_misuse("crypto_aead_chacha20poly1305_encrypt(): message too long"); + sodium_misuse(); } ret = crypto_aead_chacha20poly1305_encrypt_detached(c, c + mlen, NULL, @@ -146,7 +146,7 @@ crypto_aead_chacha20poly1305_ietf_encrypt(unsigned char *c, int ret; if (mlen > UINT64_MAX - crypto_aead_chacha20poly1305_ietf_ABYTES) { - sodium_misuse("crypto_aead_chacha20poly1305_ietf_encrypt(): message too long"); + sodium_misuse(); } ret = crypto_aead_chacha20poly1305_ietf_encrypt_detached(c, c + mlen, NULL, diff --git a/src/libsodium/crypto_aead/xchacha20poly1305/sodium/aead_xchacha20poly1305.c b/src/libsodium/crypto_aead/xchacha20poly1305/sodium/aead_xchacha20poly1305.c index 50ba88a2..95960503 100644 --- a/src/libsodium/crypto_aead/xchacha20poly1305/sodium/aead_xchacha20poly1305.c +++ b/src/libsodium/crypto_aead/xchacha20poly1305/sodium/aead_xchacha20poly1305.c @@ -54,7 +54,7 @@ crypto_aead_xchacha20poly1305_ietf_encrypt(unsigned char *c, int ret; if (mlen > UINT64_MAX - crypto_aead_xchacha20poly1305_ietf_ABYTES) { - sodium_misuse("crypto_aead_xchacha20poly1305_ietf_encrypt(): message too long"); + sodium_misuse(); } ret = crypto_aead_xchacha20poly1305_ietf_encrypt_detached (c, c + mlen, NULL, m, mlen, ad, adlen, nsec, npub, k); diff --git a/src/libsodium/crypto_generichash/blake2b/ref/blake2b-ref.c b/src/libsodium/crypto_generichash/blake2b/ref/blake2b-ref.c index 1a051283..c10ed59c 100644 --- a/src/libsodium/crypto_generichash/blake2b/ref/blake2b-ref.c +++ b/src/libsodium/crypto_generichash/blake2b/ref/blake2b-ref.c @@ -192,7 +192,7 @@ blake2b_init(blake2b_state *S, const uint8_t outlen) blake2b_param P[1]; if ((!outlen) || (outlen > BLAKE2B_OUTBYTES)) { - sodium_misuse("blake2b_init(): unsupported output length"); + sodium_misuse(); } P->digest_length = outlen; P->key_length = 0; @@ -215,7 +215,7 @@ blake2b_init_salt_personal(blake2b_state *S, const uint8_t outlen, blake2b_param P[1]; if ((!outlen) || (outlen > BLAKE2B_OUTBYTES)) { - sodium_misuse("blake2b_init_salt_personal(): unsupported output length"); + sodium_misuse(); } P->digest_length = outlen; P->key_length = 0; @@ -246,10 +246,10 @@ blake2b_init_key(blake2b_state *S, const uint8_t outlen, const void *key, blake2b_param P[1]; if ((!outlen) || (outlen > BLAKE2B_OUTBYTES)) { - sodium_misuse("blake2b_init_key(): unsupported output length"); + sodium_misuse(); } if (!key || !keylen || keylen > BLAKE2B_KEYBYTES) { - sodium_misuse("blake2b_init_key(): unsupported key length"); + sodium_misuse(); } P->digest_length = outlen; P->key_length = keylen; @@ -264,7 +264,7 @@ blake2b_init_key(blake2b_state *S, const uint8_t outlen, const void *key, memset(P->personal, 0, sizeof(P->personal)); if (blake2b_init_param(S, P) < 0) { - sodium_misuse("blake2b_init_key(): invalid parameters"); + sodium_misuse(); } { uint8_t block[BLAKE2B_BLOCKBYTES]; @@ -284,10 +284,10 @@ blake2b_init_key_salt_personal(blake2b_state *S, const uint8_t outlen, blake2b_param P[1]; if ((!outlen) || (outlen > BLAKE2B_OUTBYTES)) { - sodium_misuse("blake2b_init_key_salt_personal(): unsupported output length"); + sodium_misuse(); } if (!key || !keylen || keylen > BLAKE2B_KEYBYTES) { - sodium_misuse("blake2b_init_key_salt_personal(): unsupported key length"); + sodium_misuse(); } P->digest_length = outlen; P->key_length = keylen; @@ -310,7 +310,7 @@ blake2b_init_key_salt_personal(blake2b_state *S, const uint8_t outlen, } if (blake2b_init_param(S, P) < 0) { - sodium_misuse("blake2b_init_key_salt_personal(): invalid parameters"); + sodium_misuse(); } { uint8_t block[BLAKE2B_BLOCKBYTES]; @@ -356,7 +356,7 @@ int blake2b_final(blake2b_state *S, uint8_t *out, uint8_t outlen) { if (!outlen || outlen > BLAKE2B_OUTBYTES) { - sodium_misuse("blake2b_final(): unsupported output length"); + sodium_misuse(); } if (blake2b_is_lastblock(S)) { return -1; @@ -403,27 +403,27 @@ blake2b(uint8_t *out, const void *in, const void *key, const uint8_t outlen, /* Verify parameters */ if (NULL == in && inlen > 0) { - sodium_misuse("blake2b(): NULL input, but length > 0"); + sodium_misuse(); } if (NULL == out) { - sodium_misuse("blake2b(): NULL output pointer"); + sodium_misuse(); } if (!outlen || outlen > BLAKE2B_OUTBYTES) { - sodium_misuse("blake2b(): unsupported output length"); + sodium_misuse(); } if (NULL == key && keylen > 0) { - sodium_misuse("blake2b(): NULL key, but key length > 0"); + sodium_misuse(); } if (keylen > BLAKE2B_KEYBYTES) { - sodium_misuse("blake2b(): unsupported key length"); + sodium_misuse(); } if (keylen > 0) { if (blake2b_init_key(S, outlen, key, keylen) < 0) { - sodium_misuse("blake2b(): invalid parameters"); + sodium_misuse(); } } else { if (blake2b_init(S, outlen) < 0) { - sodium_misuse("blake2b(): invalid parameters"); + sodium_misuse(); } } @@ -441,28 +441,28 @@ blake2b_salt_personal(uint8_t *out, const void *in, const void *key, /* Verify parameters */ if (NULL == in && inlen > 0) { - sodium_misuse("blake2b_salt_personal(): NULL input, but length > 0"); + sodium_misuse(); } if (NULL == out) { - sodium_misuse("blake2b_salt_personal(): NULL output pointer"); + sodium_misuse(); } if (!outlen || outlen > BLAKE2B_OUTBYTES) { - sodium_misuse("blake2b_salt_personal(): unsupported output length"); + sodium_misuse(); } if (NULL == key && keylen > 0) { - sodium_misuse("blake2b_salt_personal(): NULL key, but key length > 0"); + sodium_misuse(); } if (keylen > BLAKE2B_KEYBYTES) { - sodium_misuse("blake2b_salt_personal(): unsupported key length"); + sodium_misuse(); } if (keylen > 0) { if (blake2b_init_key_salt_personal(S, outlen, key, keylen, salt, personal) < 0) { - sodium_misuse("blake2b_salt_personal(): invalid parameters"); + sodium_misuse(); } } else { if (blake2b_init_salt_personal(S, outlen, salt, personal) < 0) { - sodium_misuse("blake2b_salt_personal(): invalid parameters"); + sodium_misuse(); } } diff --git a/src/libsodium/crypto_kx/crypto_kx.c b/src/libsodium/crypto_kx/crypto_kx.c index 4628a32a..877ab7ff 100644 --- a/src/libsodium/crypto_kx/crypto_kx.c +++ b/src/libsodium/crypto_kx/crypto_kx.c @@ -49,7 +49,7 @@ crypto_kx_client_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES], tx = rx; } if (rx == NULL) { - sodium_misuse("crypto_kx_client_session_keys(): no pointers given"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } if (crypto_scalarmult(q, client_sk, server_pk) != 0) { return -1; @@ -90,7 +90,7 @@ crypto_kx_server_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES], tx = rx; } if (rx == NULL) { - sodium_misuse("crypto_kx_server_session_keys(): no pointers given"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } if (crypto_scalarmult(q, server_sk, client_pk) != 0) { return -1; diff --git a/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.c b/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.c index df890f6b..7a5a6988 100644 --- a/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.c +++ b/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.c @@ -57,7 +57,7 @@ PBKDF2_SHA256(const uint8_t *passwd, size_t passwdlen, const uint8_t *salt, #if SIZE_MAX > 0x1fffffffe0ULL if (dkLen > 0x1fffffffe0ULL) { - sodium_misuse("PBKDF2_SHA256(): derived key length is too large"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } #endif crypto_auth_hmacsha256_init(&PShctx, passwd, passwdlen); diff --git a/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.c b/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.c index 467870bb..4db4395d 100644 --- a/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.c +++ b/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.c @@ -78,7 +78,7 @@ chacha20_encrypt_bytes(chacha_ctx *ctx, const uint8_t *m, uint8_t *c, return; /* LCOV_EXCL_LINE */ } if (bytes > 64ULL * (1ULL << 32) - 64ULL) { - sodium_misuse("chacha20_encrypt_bytes(): message too long"); + sodium_misuse(); } # include "u8.h" # include "u4.h" diff --git a/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-ssse3.c b/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-ssse3.c index f2f21a08..0c6b5af3 100644 --- a/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-ssse3.c +++ b/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-ssse3.c @@ -73,7 +73,7 @@ chacha20_encrypt_bytes(chacha_ctx *ctx, const uint8_t *m, uint8_t *c, return; /* LCOV_EXCL_LINE */ } if (bytes > 64ULL * (1ULL << 32) - 64ULL) { - sodium_misuse("chacha20_encrypt_bytes(): message too long"); + sodium_misuse(); } # include "u4.h" # include "u1.h" diff --git a/src/libsodium/crypto_stream/chacha20/ref/chacha20_ref.c b/src/libsodium/crypto_stream/chacha20/ref/chacha20_ref.c index 150c68fa..2eee3b2c 100644 --- a/src/libsodium/crypto_stream/chacha20/ref/chacha20_ref.c +++ b/src/libsodium/crypto_stream/chacha20/ref/chacha20_ref.c @@ -93,7 +93,7 @@ chacha20_encrypt_bytes(chacha_ctx *ctx, const uint8_t *m, uint8_t *c, return; /* LCOV_EXCL_LINE */ } if (bytes > 64ULL * (1ULL << 32) - 64ULL) { - sodium_misuse("chacha20_encrypt_bytes(): message too long"); + sodium_misuse(); } j0 = ctx->input[0]; j1 = ctx->input[1]; diff --git a/src/libsodium/include/sodium/core.h b/src/libsodium/include/sodium/core.h index 7aa82509..dd088d2c 100644 --- a/src/libsodium/include/sodium/core.h +++ b/src/libsodium/include/sodium/core.h @@ -15,10 +15,10 @@ int sodium_init(void) /* ---- */ SODIUM_EXPORT -int sodium_set_misuse_handler(void (*handler)(const char *err)); +int sodium_set_misuse_handler(void (*handler)(void)); SODIUM_EXPORT -void sodium_misuse(const char *err) +void sodium_misuse(void) __attribute__ ((noreturn)); #ifdef __cplusplus diff --git a/src/libsodium/randombytes/nativeclient/randombytes_nativeclient.c b/src/libsodium/randombytes/nativeclient/randombytes_nativeclient.c index bd1e8a94..85ffa9b2 100644 --- a/src/libsodium/randombytes/nativeclient/randombytes_nativeclient.c +++ b/src/libsodium/randombytes/nativeclient/randombytes_nativeclient.c @@ -21,12 +21,12 @@ randombytes_nativeclient_buf(void * const buf, const size_t size) if (nacl_interface_query(NACL_IRT_RANDOM_v0_1, &rand_intf, sizeof rand_intf) != sizeof rand_intf) { - sodium_misuse("randombytes_nativeclient_buf(): NaCl IRT_RANDOM API failed"); + sodium_misuse(); } while (toread > (size_t) 0U) { if (rand_intf.get_random_bytes(buf_, size, &readnb) != 0 || readnb > size) { - sodium_misuse("randombytes_nativeclient_buf(): NaCl IRT_RANDOM API didn't return the correct amount of bytes"); + sodium_misuse(); } toread -= readnb; buf_ += readnb; diff --git a/src/libsodium/randombytes/randombytes.c b/src/libsodium/randombytes/randombytes.c index 8087b759..929180b7 100644 --- a/src/libsodium/randombytes/randombytes.c +++ b/src/libsodium/randombytes/randombytes.c @@ -173,7 +173,7 @@ randombytes_buf_deterministic(void * const buf, const size_t size, COMPILER_ASSERT(randombytes_SEEDBYTES == crypto_stream_chacha20_ietf_KEYBYTES); #if SIZE_MAX > 0x4000000000ULL if (size > 0x4000000000ULL) { - sodium_misuse("randombytes_buf_deterministic(): length shouldn't exceed 0x4000000000"); + sodium_misuse(); } #endif crypto_stream_chacha20_ietf((unsigned char *) buf, (unsigned long long) size, diff --git a/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c b/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c index 5319ff61..2a69c41d 100644 --- a/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c +++ b/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c @@ -99,7 +99,7 @@ sodium_hrtime(void) struct timeval tv; if (gettimeofday(&tv, NULL) != 0) { - sodium_misuse("sodium_hrtime(): gettimeofday() failed"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } ts = ((uint64_t) tv.tv_sec) * 1000000U + (uint64_t) tv.tv_usec; } @@ -278,7 +278,7 @@ randombytes_salsa20_random_init(void) if ((stream.random_data_source_fd = randombytes_salsa20_random_random_dev_open()) == -1) { - sodium_misuse("randombytes_salsa20_random_init(): unable to open the random device"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } errno = errno_save; # endif /* HAVE_SAFE_ARC4RANDOM */ @@ -332,24 +332,24 @@ randombytes_salsa20_random_stir(void) # elif defined(SYS_getrandom) && defined(__NR_getrandom) if (stream.getrandom_available != 0) { if (randombytes_linux_getrandom(m0, sizeof m0) != 0) { - sodium_misuse("randombytes_salsa20_random_stir(): linux getrandom() failed"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } } else if (stream.random_data_source_fd == -1 || safe_read(stream.random_data_source_fd, m0, sizeof m0) != (ssize_t) sizeof m0) { - sodium_misuse("randombytes_salsa20_random_stir(): unable to read from the random device"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } # else if (stream.random_data_source_fd == -1 || safe_read(stream.random_data_source_fd, m0, sizeof m0) != (ssize_t) sizeof m0) { - sodium_misuse("randombytes_salsa20_random_stir(): unable to read from the random device"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } # endif #else /* _WIN32 */ if (! RtlGenRandom((PVOID) m0, (ULONG) sizeof m0)) { - sodium_misuse("randombytes_salsa20_random_stir(): RtlGenRandom() failed"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } #endif if (crypto_generichash(stream.key, sizeof stream.key, k0, sizeof_k0, @@ -371,7 +371,7 @@ randombytes_salsa20_random_stir_if_needed(void) if (stream.initialized == 0) { randombytes_salsa20_random_stir(); } else if (stream.pid != getpid()) { - sodium_misuse("randombytes_salsa20_random_stir_if_needed(): stirring is required after fork()"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } #else if (stream.initialized == 0) { diff --git a/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c b/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c index 1c5c0b4d..13ec2d6f 100644 --- a/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c +++ b/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c @@ -254,7 +254,7 @@ randombytes_sysrandom_init(void) if ((stream.random_data_source_fd = randombytes_sysrandom_random_dev_open()) == -1) { - sodium_misuse("randombytes_sysrandom_init(): unable to open the random device"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } errno = errno_save; } @@ -324,21 +324,21 @@ randombytes_sysrandom_buf(void * const buf, const size_t size) # if defined(SYS_getrandom) && defined(__NR_getrandom) if (stream.getrandom_available != 0) { if (randombytes_linux_getrandom(buf, size) != 0) { - sodium_misuse("randombytes_sysrandom_buf(): linux getrandom() failed"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } return; } # endif if (stream.random_data_source_fd == -1 || safe_read(stream.random_data_source_fd, buf, size) != (ssize_t) size) { - sodium_misuse("randombytes_sysrandom_buf(): unable to read the random device"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } #else if (size > (size_t) 0xffffffff) { - sodium_misuse("randombytes_sysrandom_buf(): cannot read more than 0xffffffff bytes at a time"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } if (! RtlGenRandom((PVOID) buf, (ULONG) size)) { - sodium_misuse("randombytes_sysrandom_buf(): RtlGenRandom() failed"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } #endif } diff --git a/src/libsodium/sodium/core.c b/src/libsodium/sodium/core.c index b6e74c99..8e49b467 100644 --- a/src/libsodium/sodium/core.c +++ b/src/libsodium/sodium/core.c @@ -171,24 +171,24 @@ sodium_crit_leave(void) #endif -static void (*_misuse_handler)(const char *err); +static void (*_misuse_handler)(void); void -sodium_misuse(const char *err) +sodium_misuse(void) { - void (*handler)(const char *err); + void (*handler)(void); if (sodium_crit_enter() == 0) { handler = _misuse_handler; if (sodium_crit_leave() == 0 && handler != NULL) { - handler(err); + handler(); } } abort(); } int -sodium_set_misuse_handler(void (*handler)(const char *err)) +sodium_set_misuse_handler(void (*handler)(void)) { if (sodium_crit_enter() != 0) { return -1; /* LCOV_EXCL_LINE */ diff --git a/src/libsodium/sodium/utils.c b/src/libsodium/sodium/utils.c index 121e6a3e..c29ccbd3 100644 --- a/src/libsodium/sodium/utils.c +++ b/src/libsodium/sodium/utils.c @@ -80,7 +80,7 @@ sodium_memzero(void *const pnt, const size_t len) SecureZeroMemory(pnt, len); #elif defined(HAVE_MEMSET_S) if (len > 0U && memset_s(pnt, (rsize_t) len, 0, (rsize_t) len) != 0) { - sodium_misuse("sodium_memzero(): length is more than RSIZE_MAX"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } #elif defined(HAVE_EXPLICIT_BZERO) explicit_bzero(pnt, len); @@ -301,7 +301,7 @@ sodium_bin2hex(char *const hex, const size_t hex_maxlen, int c; if (bin_len >= SIZE_MAX / 2 || hex_maxlen <= bin_len * 2U) { - sodium_misuse("sodium_bin2hex(): invalid length"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } while (i < bin_len) { c = bin[i] & 0xf; @@ -388,7 +388,7 @@ _sodium_alloc_init(void) page_size = (size_t) si.dwPageSize; # endif if (page_size < CANARY_SIZE || page_size < sizeof(size_t)) { - sodium_misuse("_sodium_alloc_init(): page size is smaller than the canary size"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } #endif randombytes_buf(canary, sizeof canary); @@ -540,7 +540,7 @@ _unprotected_ptr_from_user_ptr(void *const ptr) page_mask = page_size - 1U; unprotected_ptr_u = ((uintptr_t) canary_ptr & (uintptr_t) ~page_mask); if (unprotected_ptr_u <= page_size * 2U) { - sodium_misuse("_unprotected_ptr_from_user_ptr(): invalid pointer (too low)"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } return (unsigned char *) unprotected_ptr_u; } @@ -570,7 +570,7 @@ _sodium_malloc(const size_t size) return NULL; } if (page_size <= sizeof canary || page_size < sizeof unprotected_size) { - sodium_misuse("_sodium_malloc(): page size too small"); /* LCOV_EXCL_LINE */ + sodium_misuse(); /* LCOV_EXCL_LINE */ } size_with_canary = (sizeof canary) + size; unprotected_size = _page_round(size_with_canary); diff --git a/test/default/sodium_core.c b/test/default/sodium_core.c index 64c63629..0f72ca38 100644 --- a/test/default/sodium_core.c +++ b/test/default/sodium_core.c @@ -3,9 +3,9 @@ #include "cmptest.h" static void -misuse_handler(const char *err) +misuse_handler(void) { - printf("misuse_handler(): [%s]\n", err); + printf("misuse_handler()\n"); exit(0); } @@ -16,7 +16,7 @@ main(void) sodium_set_misuse_handler(misuse_handler); sodium_set_misuse_handler(NULL); - printf("%d\n", sodium_init()); + assert(sodium_init() == 1); (void) sodium_runtime_has_neon(); (void) sodium_runtime_has_sse2(); @@ -27,7 +27,7 @@ main(void) (void) sodium_runtime_has_aesni(); sodium_set_misuse_handler(misuse_handler); - sodium_misuse("TEST"); + sodium_misuse(); printf("Misuse handler returned\n"); return 0; diff --git a/test/default/sodium_core.exp b/test/default/sodium_core.exp index d00491fd..68a17b04 100644 --- a/test/default/sodium_core.exp +++ b/test/default/sodium_core.exp @@ -1 +1 @@ -1 +misuse_handler()