Skip to content

Commit 605f6ee

Browse files
skomskiFishrock123
authored andcommittedAug 19, 2015
crypto: fix memory leak in PBKDF2Request
PR-URL: #2375 Reviewed-By: Ben Noordhuis <[email protected]>
1 parent ba6eb8a commit 605f6ee

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed
 

‎src/node_crypto.cc

+9-1
Original file line numberDiff line numberDiff line change
@@ -4622,6 +4622,7 @@ class PBKDF2Request : public AsyncWrap {
46224622
}
46234623

46244624
~PBKDF2Request() override {
4625+
release();
46254626
persistent().Reset();
46264627
}
46274628

@@ -4663,10 +4664,15 @@ class PBKDF2Request : public AsyncWrap {
46634664

46644665
inline void release() {
46654666
free(pass_);
4667+
pass_ = nullptr;
46664668
passlen_ = 0;
4669+
46674670
free(salt_);
4671+
salt_ = nullptr;
46684672
saltlen_ = 0;
4673+
46694674
free(key_);
4675+
key_ = nullptr;
46704676
keylen_ = 0;
46714677
}
46724678

@@ -4737,7 +4743,6 @@ void EIO_PBKDF2After(uv_work_t* work_req, int status) {
47374743
Local<Value> argv[2];
47384744
EIO_PBKDF2After(req, argv);
47394745
req->MakeCallback(env->ondone_string(), ARRAY_SIZE(argv), argv);
4740-
req->release();
47414746
delete req;
47424747
}
47434748

@@ -4848,6 +4853,9 @@ void PBKDF2(const FunctionCallbackInfo<Value>& args) {
48484853
Local<Value> argv[2];
48494854
EIO_PBKDF2(req);
48504855
EIO_PBKDF2After(req, argv);
4856+
4857+
delete req;
4858+
48514859
if (argv[0]->IsObject())
48524860
env->isolate()->ThrowException(argv[0]);
48534861
else

0 commit comments

Comments
 (0)
Please sign in to comment.