wincng.c: fixed possible memory leak in _libssh2_wincng_hash
If _libssh2_wincng_hash_update failed _libssh2_wincng_hash_final would never have been called before. Reported by Zenju.
This commit is contained in:
parent
9bf32da607
commit
d0ffeba72e
13
src/wincng.c
13
src/wincng.c
@ -415,16 +415,15 @@ _libssh2_wincng_hash(unsigned char *data, unsigned long datalen,
|
||||
unsigned char *hash, unsigned long hashlen)
|
||||
{
|
||||
_libssh2_wincng_hash_ctx ctx;
|
||||
int ret;
|
||||
|
||||
if (!_libssh2_wincng_hash_init(&ctx, hAlg, hashlen, NULL, 0)) {
|
||||
if (!_libssh2_wincng_hash_update(&ctx, data, datalen)) {
|
||||
if (!_libssh2_wincng_hash_final(&ctx, hash)) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
ret = _libssh2_wincng_hash_init(&ctx, hAlg, hashlen, NULL, 0);
|
||||
if (!ret) {
|
||||
ret = _libssh2_wincng_hash_update(&ctx, data, datalen);
|
||||
ret |= _libssh2_wincng_hash_final(&ctx, hash);
|
||||
}
|
||||
|
||||
return -1;
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user