mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-15 01:24:33 +00:00
fix devtmpfs race
After we's done complete(&req->done), there's nothing to prevent the scope containing *req from being gone and *req overwritten by any kind of junk. So we must read req->next before that... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
eda65cc6ce
commit
e13889bab3
@ -406,9 +406,10 @@ static int devtmpfsd(void *p)
|
||||
requests = NULL;
|
||||
spin_unlock(&req_lock);
|
||||
while (req) {
|
||||
struct req *next = req->next;
|
||||
req->err = handle(req->name, req->mode, req->dev);
|
||||
complete(&req->done);
|
||||
req = req->next;
|
||||
req = next;
|
||||
}
|
||||
spin_lock(&req_lock);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user