Messages in this thread | | | Date | Mon, 1 Apr 2013 08:16:17 -0700 | Subject | Re: [PATCH] loop: prevent bdev freeing while device in use | From | Linus Torvalds <> |
| |
On Mon, Apr 1, 2013 at 4:58 AM, Anatol Pomozov <anatol.pomozov@gmail.com> wrote: > > To prevent use-after-free we need to hold device inode in loop_set_fd() > and put it later in loop_clr_fd().
Is there something that guarantees that there's only one loop_set_fd() and one paired loop_clr_fd()?
IOW, what protects us from somebody doing loop_clr_fd() on a device that hasn't been set up yet, or doing multiple loop_set_fd calls?
I suspect the "lo->lo_state" is part of the answer, but it's very much not obvious, and I'd want this to be explicitly explained.
Linus
| |