mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-10-27 01:55:32 +03:00
mount: strdup() device paths we collect
We never know what the changes triggered by mount_set_state() do to the unit. Let's be safe and copy the device path into our set, so that we are safe against that.
This commit is contained in:
parent
f8064c4fda
commit
b6418dc94e
@ -1782,7 +1782,7 @@ fail:
|
||||
}
|
||||
|
||||
static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, void *userdata) {
|
||||
_cleanup_set_free_ Set *around = NULL, *gone = NULL;
|
||||
_cleanup_set_free_free_ Set *around = NULL, *gone = NULL;
|
||||
Manager *m = userdata;
|
||||
const char *what;
|
||||
Iterator i;
|
||||
@ -1843,7 +1843,7 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents,
|
||||
|
||||
/* Remember that this device might just have disappeared */
|
||||
if (set_ensure_allocated(&gone, &path_hash_ops) < 0 ||
|
||||
set_put(gone, mount->parameters_proc_self_mountinfo.what) < 0)
|
||||
set_put_strdup(gone, mount->parameters_proc_self_mountinfo.what) < 0)
|
||||
log_oom(); /* we don't care too much about OOM here... */
|
||||
}
|
||||
|
||||
@ -1896,9 +1896,10 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents,
|
||||
if (mount_is_mounted(mount) &&
|
||||
mount->from_proc_self_mountinfo &&
|
||||
mount->parameters_proc_self_mountinfo.what) {
|
||||
/* Track devices currently used */
|
||||
|
||||
if (set_ensure_allocated(&around, &path_hash_ops) < 0 ||
|
||||
set_put(around, mount->parameters_proc_self_mountinfo.what) < 0)
|
||||
set_put_strdup(around, mount->parameters_proc_self_mountinfo.what) < 0)
|
||||
log_oom();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user