sd-journal: fix use-after-free
As commented in the code, we need to replace the pointer to the key, hence, hashmap_replace() must be used, instead of hashmap_update(). Fixes #27459.
This commit is contained in:
@@ -2304,7 +2304,7 @@ static void journal_file_unlink_newest_by_bood_id(sd_journal *j, JournalFile *f)
|
||||
/* There's still a member in the prioq? Then make sure the hashmap key now points to its
|
||||
* .newest_boot_id field (and not ours!). Not we only replace the memory of the key here, the
|
||||
* value of the key (and the data associated with it) remain the same. */
|
||||
assert_se(hashmap_update(j->newest_by_boot_id, &nf->newest_boot_id, p) >= 0);
|
||||
assert_se(hashmap_replace(j->newest_by_boot_id, &nf->newest_boot_id, p) >= 0);
|
||||
else {
|
||||
assert_se(hashmap_remove(j->newest_by_boot_id, &f->newest_boot_id) == p);
|
||||
prioq_free(p);
|
||||
|
||||
Reference in New Issue
Block a user