Fix memleak in lib/kadm5/set_keys.c
This commit is contained in:
@@ -201,10 +201,13 @@ _kadm5_set_keys2(kadm5_server_context *context,
|
|||||||
|
|
||||||
setup_Key(&key, &salt, key_data, k);
|
setup_Key(&key, &salt, key_data, k);
|
||||||
ret = add_Keys(&hkset.keys, &key);
|
ret = add_Keys(&hkset.keys, &key);
|
||||||
if (ret)
|
if (ret) {
|
||||||
|
free_hdb_keyset(&hkset);
|
||||||
goto out;
|
goto out;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ret = add_HDB_Ext_KeySet(hist_keys, &hkset);
|
ret = add_HDB_Ext_KeySet(hist_keys, &hkset);
|
||||||
|
free_hdb_keyset(&hkset);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out;
|
goto out;
|
||||||
replace_hist_keys = 1;
|
replace_hist_keys = 1;
|
||||||
@@ -249,6 +252,7 @@ _kadm5_set_keys2(kadm5_server_context *context,
|
|||||||
*
|
*
|
||||||
* Of course, the above hdb_replace_extension() is not at all efficient...
|
* Of course, the above hdb_replace_extension() is not at all efficient...
|
||||||
*/
|
*/
|
||||||
|
free_HDB_extension(&ext);
|
||||||
free_Keys(&ent->keys);
|
free_Keys(&ent->keys);
|
||||||
ent->keys = keys;
|
ent->keys = keys;
|
||||||
hdb_entry_set_pw_change_time(context->context, ent, 0);
|
hdb_entry_set_pw_change_time(context->context, ent, 0);
|
||||||
@@ -258,7 +262,6 @@ _kadm5_set_keys2(kadm5_server_context *context,
|
|||||||
|
|
||||||
out:
|
out:
|
||||||
free_Keys(&keys);
|
free_Keys(&keys);
|
||||||
free_hdb_keyset(&hkset);
|
|
||||||
free_HDB_extension(&ext);
|
free_HDB_extension(&ext);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user