Skip to content

Commit a6be27a

Browse files
joyeecheungjasnell
authored andcommitted
src: throw ERR_MISSING_ARGS in node_crypto.cc
PR-URL: #20121 Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
1 parent f042929 commit a6be27a

File tree

2 files changed

+18
-15
lines changed

2 files changed

+18
-15
lines changed

src/node_crypto.cc

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,7 @@ void SecureContext::SetKey(const FunctionCallbackInfo<Value>& args) {
494494

495495
unsigned int len = args.Length();
496496
if (len < 1) {
497-
return env->ThrowError("Private key argument is mandatory");
497+
return THROW_ERR_MISSING_ARGS(env, "Private key argument is mandatory");
498498
}
499499

500500
if (len > 2) {
@@ -692,7 +692,7 @@ void SecureContext::SetCert(const FunctionCallbackInfo<Value>& args) {
692692
ASSIGN_OR_RETURN_UNWRAP(&sc, args.Holder());
693693

694694
if (args.Length() != 1) {
695-
return env->ThrowTypeError("Certificate argument is mandatory");
695+
return THROW_ERR_MISSING_ARGS(env, "Certificate argument is mandatory");
696696
}
697697

698698
BIO* bio = LoadBIO(env, args[0]);
@@ -766,7 +766,7 @@ void SecureContext::AddCACert(const FunctionCallbackInfo<Value>& args) {
766766
ClearErrorOnReturn clear_error_on_return;
767767

768768
if (args.Length() != 1) {
769-
return env->ThrowTypeError("CA certificate argument is mandatory");
769+
return THROW_ERR_MISSING_ARGS(env, "CA certificate argument is mandatory");
770770
}
771771

772772
BIO* bio = LoadBIO(env, args[0]);
@@ -797,7 +797,7 @@ void SecureContext::AddCRL(const FunctionCallbackInfo<Value>& args) {
797797
ASSIGN_OR_RETURN_UNWRAP(&sc, args.Holder());
798798

799799
if (args.Length() != 1) {
800-
return env->ThrowTypeError("CRL argument is mandatory");
800+
return THROW_ERR_MISSING_ARGS(env, "CRL argument is mandatory");
801801
}
802802

803803
ClearErrorOnReturn clear_error_on_return;
@@ -900,7 +900,7 @@ void SecureContext::SetCiphers(const FunctionCallbackInfo<Value>& args) {
900900
ClearErrorOnReturn clear_error_on_return;
901901

902902
if (args.Length() != 1) {
903-
return env->ThrowTypeError("Ciphers argument is mandatory");
903+
return THROW_ERR_MISSING_ARGS(env, "Ciphers argument is mandatory");
904904
}
905905

906906
THROW_AND_RETURN_IF_NOT_STRING(env, args[0], "Ciphers");
@@ -916,7 +916,7 @@ void SecureContext::SetECDHCurve(const FunctionCallbackInfo<Value>& args) {
916916
Environment* env = sc->env();
917917

918918
if (args.Length() != 1)
919-
return env->ThrowTypeError("ECDH curve name argument is mandatory");
919+
return THROW_ERR_MISSING_ARGS(env, "ECDH curve name argument is mandatory");
920920

921921
THROW_AND_RETURN_IF_NOT_STRING(env, args[0], "ECDH curve name");
922922

@@ -939,7 +939,7 @@ void SecureContext::SetDHParam(const FunctionCallbackInfo<Value>& args) {
939939
// Auto DH is not supported in openssl 1.0.1, so dhparam needs
940940
// to be specified explicitly
941941
if (args.Length() != 1)
942-
return env->ThrowTypeError("DH argument is mandatory");
942+
return THROW_ERR_MISSING_ARGS(env, "DH argument is mandatory");
943943

944944
// Invalid dhparam is silently discarded and DHE is no longer used.
945945
BIO* bio = LoadBIO(env, args[0]);
@@ -994,7 +994,8 @@ void SecureContext::SetSessionIdContext(
994994
Environment* env = sc->env();
995995

996996
if (args.Length() != 1) {
997-
return env->ThrowTypeError("Session ID context argument is mandatory");
997+
return THROW_ERR_MISSING_ARGS(
998+
env, "Session ID context argument is mandatory");
998999
}
9991000

10001001
THROW_AND_RETURN_IF_NOT_STRING(env, args[0], "Session ID context");
@@ -1065,7 +1066,7 @@ void SecureContext::LoadPKCS12(const FunctionCallbackInfo<Value>& args) {
10651066
ClearErrorOnReturn clear_error_on_return;
10661067

10671068
if (args.Length() < 1) {
1068-
return env->ThrowTypeError("PFX certificate argument is mandatory");
1069+
return THROW_ERR_MISSING_ARGS(env, "PFX certificate argument is mandatory");
10691070
}
10701071

10711072
in = LoadBIO(env, args[0]);
@@ -1198,7 +1199,7 @@ void SecureContext::SetTicketKeys(const FunctionCallbackInfo<Value>& args) {
11981199
Environment* env = wrap->env();
11991200

12001201
if (args.Length() < 1) {
1201-
return env->ThrowTypeError("Ticket keys argument is mandatory");
1202+
return THROW_ERR_MISSING_ARGS(env, "Ticket keys argument is mandatory");
12021203
}
12031204

12041205
THROW_AND_RETURN_IF_NOT_BUFFER(env, args[0], "Ticket keys");
@@ -1951,7 +1952,7 @@ void SSLWrap<Base>::SetSession(const FunctionCallbackInfo<Value>& args) {
19511952
ASSIGN_OR_RETURN_UNWRAP(&w, args.Holder());
19521953

19531954
if (args.Length() < 1) {
1954-
return env->ThrowError("Session argument is mandatory");
1955+
return THROW_ERR_MISSING_ARGS(env, "Session argument is mandatory");
19551956
}
19561957

19571958
THROW_AND_RETURN_IF_NOT_BUFFER(env, args[0], "Session");
@@ -2076,7 +2077,7 @@ void SSLWrap<Base>::SetOCSPResponse(
20762077
Environment* env = w->env();
20772078

20782079
if (args.Length() < 1)
2079-
return env->ThrowTypeError("OCSP response argument is mandatory");
2080+
return THROW_ERR_MISSING_ARGS(env, "OCSP response argument is mandatory");
20802081

20812082
THROW_AND_RETURN_IF_NOT_BUFFER(env, args[0], "OCSP response");
20822083

@@ -4085,7 +4086,7 @@ void DiffieHellman::DiffieHellmanGroup(
40854086
DiffieHellman* diffieHellman = new DiffieHellman(env, args.This());
40864087

40874088
if (args.Length() != 1) {
4088-
return env->ThrowError("Group name argument is mandatory");
4089+
return THROW_ERR_MISSING_ARGS(env, "Group name argument is mandatory");
40894090
}
40904091

40914092
THROW_AND_RETURN_IF_NOT_STRING(env, args[0], "Group name");
@@ -4235,7 +4236,8 @@ void DiffieHellman::ComputeSecret(const FunctionCallbackInfo<Value>& args) {
42354236
BIGNUM* key = nullptr;
42364237

42374238
if (args.Length() == 0) {
4238-
return env->ThrowError("Other party's public key argument is mandatory");
4239+
return THROW_ERR_MISSING_ARGS(
4240+
env, "Other party's public key argument is mandatory");
42394241
} else {
42404242
THROW_AND_RETURN_IF_NOT_BUFFER(env, args[0], "Other party's public key");
42414243
key = BN_bin2bn(
@@ -4305,7 +4307,7 @@ void DiffieHellman::SetKey(const v8::FunctionCallbackInfo<v8::Value>& args,
43054307

43064308
if (args.Length() == 0) {
43074309
snprintf(errmsg, sizeof(errmsg), "%s argument is mandatory", what);
4308-
return env->ThrowError(errmsg);
4310+
return THROW_ERR_MISSING_ARGS(env, errmsg);
43094311
}
43104312

43114313
if (!Buffer::HasInstance(args[0])) {

src/node_errors.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ namespace node {
2222
V(ERR_INVALID_ARG_VALUE, TypeError) \
2323
V(ERR_INVALID_ARG_TYPE, TypeError) \
2424
V(ERR_MEMORY_ALLOCATION_FAILED, Error) \
25+
V(ERR_MISSING_ARGS, TypeError) \
2526
V(ERR_MISSING_MODULE, Error) \
2627
V(ERR_STRING_TOO_LONG, Error) \
2728
V(ERR_BUFFER_TOO_LARGE, Error)

0 commit comments

Comments
 (0)