mirror of
https://github.com/systemd/systemd.git
synced 2024-11-27 20:23:36 +08:00
mount: Don't stop the mountinfo parser if one line can't be read
The current behavior of the /proc/self/mountinfo parser is to stop the parser on parse failures I'm only changing this behavior to try the next line and adding a warning if occurs a fail.
This commit is contained in:
parent
1bc5d57ae3
commit
1ddff895f3
@ -1408,13 +1408,14 @@ finish:
|
||||
|
||||
static int mount_load_proc_self_mountinfo(Manager *m, bool set_flags) {
|
||||
int r;
|
||||
unsigned i;
|
||||
char *device, *path, *options, *options2, *fstype, *d, *p, *o;
|
||||
|
||||
assert(m);
|
||||
|
||||
rewind(m->proc_self_mountinfo);
|
||||
|
||||
for (;;) {
|
||||
for (i = 1;; i++) {
|
||||
int k;
|
||||
|
||||
device = path = options = options2 = fstype = d = p = o = NULL;
|
||||
@ -1441,8 +1442,8 @@ static int mount_load_proc_self_mountinfo(Manager *m, bool set_flags) {
|
||||
if (k == EOF)
|
||||
break;
|
||||
|
||||
r = -EBADMSG;
|
||||
goto finish;
|
||||
log_warning("Failed to parse /proc/self/mountinfo:%u.", i);
|
||||
goto clean_up;
|
||||
}
|
||||
|
||||
if (asprintf(&o, "%s,%s", options, options2) < 0) {
|
||||
@ -1459,6 +1460,7 @@ static int mount_load_proc_self_mountinfo(Manager *m, bool set_flags) {
|
||||
if ((r = mount_add_one(m, d, p, o, fstype, true, set_flags)) < 0)
|
||||
goto finish;
|
||||
|
||||
clean_up:
|
||||
free(device);
|
||||
free(path);
|
||||
free(options);
|
||||
|
Loading…
Reference in New Issue
Block a user