Add checks for ops/mem limit sizes
This commit is contained in:
parent
26f4a40eb4
commit
4afa6fc093
@ -1328,6 +1328,14 @@ ERL_NIF_TERM enif_crypto_pwhash(ErlNifEnv *env, int argc, ERL_NIF_TERM const arg
|
|||||||
return enif_make_badarg(env);
|
return enif_make_badarg(env);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check limits
|
||||||
|
if( (o < crypto_pwhash_OPSLIMIT_MIN) ||
|
||||||
|
(o > crypto_pwhash_OPSLIMIT_MAX) ||
|
||||||
|
(m < crypto_pwhash_MEMLIMIT_MIN) ||
|
||||||
|
(m > crypto_pwhash_MEMLIMIT_MAX) ) {
|
||||||
|
return enif_make_badarg(env);
|
||||||
|
}
|
||||||
|
|
||||||
// Check Salt size
|
// Check Salt size
|
||||||
if(s.size != crypto_pwhash_SALTBYTES) {
|
if(s.size != crypto_pwhash_SALTBYTES) {
|
||||||
return nacl_error_tuple(env, "invalid_salt_size");
|
return nacl_error_tuple(env, "invalid_salt_size");
|
||||||
@ -1364,6 +1372,14 @@ ERL_NIF_TERM enif_crypto_pwhash_str(ErlNifEnv *env, int argc, ERL_NIF_TERM const
|
|||||||
return enif_make_badarg(env);
|
return enif_make_badarg(env);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check limits
|
||||||
|
if( (o < crypto_pwhash_OPSLIMIT_MIN) ||
|
||||||
|
(o > crypto_pwhash_OPSLIMIT_MAX) ||
|
||||||
|
(m < crypto_pwhash_MEMLIMIT_MIN) ||
|
||||||
|
(m > crypto_pwhash_MEMLIMIT_MAX) ) {
|
||||||
|
return enif_make_badarg(env);
|
||||||
|
}
|
||||||
|
|
||||||
// Allocate memory for return binary
|
// Allocate memory for return binary
|
||||||
if( !enif_alloc_binary(crypto_pwhash_STRBYTES, &h) ) {
|
if( !enif_alloc_binary(crypto_pwhash_STRBYTES, &h) ) {
|
||||||
return nacl_error_tuple(env, "alloc_failed");
|
return nacl_error_tuple(env, "alloc_failed");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user