forked from aniani/vim
patch 8.1.1219: not checking for NULL return from alloc()
Problem: Not checking for NULL return from alloc(). Solution: Add checks. (Martin Kunev, closes #4303, closes #4174)
This commit is contained in:
13
src/crypt.c
13
src/crypt.c
@@ -43,7 +43,7 @@ typedef struct {
|
||||
int (* self_test_fn)();
|
||||
|
||||
// Function pointer for initializing encryption/decryption.
|
||||
void (* init_fn)(cryptstate_T *state, char_u *key,
|
||||
int (* init_fn)(cryptstate_T *state, char_u *key,
|
||||
char_u *salt, int salt_len, char_u *seed, int seed_len);
|
||||
|
||||
/* Function pointers for encoding/decoding from one buffer into another.
|
||||
@@ -243,6 +243,7 @@ crypt_self_test(void)
|
||||
|
||||
/*
|
||||
* Allocate a crypt state and initialize it.
|
||||
* Return NULL for failure.
|
||||
*/
|
||||
cryptstate_T *
|
||||
crypt_create(
|
||||
@@ -255,8 +256,16 @@ crypt_create(
|
||||
{
|
||||
cryptstate_T *state = (cryptstate_T *)alloc((int)sizeof(cryptstate_T));
|
||||
|
||||
if (state == NULL)
|
||||
return state;
|
||||
|
||||
state->method_nr = method_nr;
|
||||
cryptmethods[method_nr].init_fn(state, key, salt, salt_len, seed, seed_len);
|
||||
if (cryptmethods[method_nr].init_fn(
|
||||
state, key, salt, salt_len, seed, seed_len) == FAIL)
|
||||
{
|
||||
vim_free(state);
|
||||
return NULL;
|
||||
}
|
||||
return state;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user