replace strndup with inline copy, free data on failure
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@15394 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -415,7 +415,13 @@ make_etype_info2_entry(ETYPE_INFO2_ENTRY *ent, Key *key)
|
|||||||
ALLOC(ent->salt);
|
ALLOC(ent->salt);
|
||||||
if (ent->salt == NULL)
|
if (ent->salt == NULL)
|
||||||
return ENOMEM;
|
return ENOMEM;
|
||||||
*ent->salt = strndup(key->salt->salt.data, key->salt->salt.length);
|
*ent->salt = malloc(key->salt->salt.length + 1);
|
||||||
|
if (*ent->salt == NULL) {
|
||||||
|
free(ent->salt);
|
||||||
|
ent->salt = NULL;
|
||||||
|
return ENOMEM;
|
||||||
|
}
|
||||||
|
memcpy(*ent->salt, key->salt->salt.data, key->salt->salt.length);
|
||||||
} else
|
} else
|
||||||
ent->salt = NULL;
|
ent->salt = NULL;
|
||||||
|
|
||||||
@@ -429,8 +435,11 @@ make_etype_info2_entry(ETYPE_INFO2_ENTRY *ent, Key *key)
|
|||||||
return ENOMEM;
|
return ENOMEM;
|
||||||
ent->s2kparams->length = 4;
|
ent->s2kparams->length = 4;
|
||||||
ent->s2kparams->data = malloc(ent->s2kparams->length);
|
ent->s2kparams->data = malloc(ent->s2kparams->length);
|
||||||
if (ent->s2kparams->data == NULL)
|
if (ent->s2kparams->data == NULL) {
|
||||||
|
free(ent->s2kparams);
|
||||||
|
ent->s2kparams = NULL;
|
||||||
return ENOMEM;
|
return ENOMEM;
|
||||||
|
}
|
||||||
_krb5_put_int(ent->s2kparams->data,
|
_krb5_put_int(ent->s2kparams->data,
|
||||||
_krb5_AES_string_to_default_iterator,
|
_krb5_AES_string_to_default_iterator,
|
||||||
ent->s2kparams->length);
|
ent->s2kparams->length);
|
||||||
|
Reference in New Issue
Block a user