Messages in this thread | | | From | Kees Cook <> | Date | Tue, 25 Sep 2018 10:23:20 -0700 | Subject | Re: [PATCH] ipc/shm: properly return EIDRM in shm_lock() |
| |
On Tue, Sep 25, 2018 at 5:00 AM, Arnd Bergmann <arnd@arndb.de> wrote: > On Fri, Aug 24, 2018 at 5:09 AM Davidlohr Bueso <dave@stgolabs.net> wrote: >> >> When getting rid of the general ipc_lock(), this was missed >> furthermore, making the comment around the ipc object validity >> check bogus. Under EIDRM conditions, callers will in turn not >> see the error and continue with the operation. >> >> Fixes: 82061c57ce9 (ipc: drop ipc_lock()) >> Signed-off-by: Davidlohr Bueso <dbueso@suse.de> >> --- > > Oddly, this change introduces a gcc warning in some configurations > (i.e. with randstruct enabled): > > ipc/shm.c: In function 'shm_lock': > ipc/shm.c:209:9: note: randstruct: casting between randomized > structure pointer types (ssa): 'struct shmid_kernel' and 'struct > kern_ipc_perm' > return (void *)ipcp; > ^~~~~~~~~~~~ > > Not sure why we didn't see that warning before, probably > it ended up making its own thing when the return code > was uninitialized.
The fix is already queued up in mmotm:
https://www.ozlabs.org/~akpm/mmotm/broken-out/ipc-shm-use-err_cast-for-shm_lock-error-return.patch
randstruct stays quiet about ERR_PTR-family casts since they're not "real" casts to a functional struct.
-Kees
-Kees
-- Kees Cook Pixel Security
| |