lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 23 Apr 2013 20:06:04 +0200 From: Sedat Dilek <sedat.dilek@...il.com> To: Davidlohr Bueso <davidlohr.bueso@...com> Cc: Rik van Riel <riel@...hat.com>, akpm@...ux-foundation.org, linux-kernel@...r.kernel.org, Linus Torvalds <torvalds@...ux-foundation.org>, Emmanuel Benisty <benisty.e@...il.com> Subject: Re: [PATCH -mm] ipc,sem: fix locking in semctl_main On Tue, Apr 23, 2013 at 7:36 PM, Davidlohr Bueso <davidlohr.bueso@...com> wrote: > On Tue, 2013-04-23 at 12:29 -0400, Rik van Riel wrote: >> Andrew, here is the patch I promised :) >> >> Everywhere else in the code, we check sma->sem_perm.deleted under >> the semaphore array lock, so we should do teh same here. >> The easy fix is to simply not drop and re-take the lock, but keep >> it locked. >> > > CCing Linus, Sedat and Emmanuel. > > This looks very much like a patch I asked Sedat to test during the > weekend, which according to him didn't solve his issue. The patch is > correct in any case. > Your patch looked a bit different (checked for ipc-lock already taken, both patches - original and refreshed againt -next attached). - Sedat - >> This patch can be folded into ipcsem-fine-grained-locking-for-semtimedop.patch >> >> Signed-off-by: Rik van Riel <riel@...hat.com> > > Acked-by: Davidlohr Bueso <davidlohr.bueso@...com> > >> --- >> ipc/sem.c | 5 ++--- >> 1 file changed, 2 insertions(+), 3 deletions(-) >> >> diff --git a/ipc/sem.c b/ipc/sem.c >> index 5711616..efdaee6 100644 >> --- a/ipc/sem.c >> +++ b/ipc/sem.c >> @@ -1243,10 +1243,9 @@ static int semctl_main(struct ipc_namespace *ns, int semid, int semnum, >> err = -EIDRM; >> goto out_free; >> } >> - sem_unlock(sma, -1); >> - } >> + } else >> + sem_lock(sma, NULL, -1); >> >> - sem_lock(sma, NULL, -1); >> for (i = 0; i < sma->sem_nsems; i++) >> sem_io[i] = sma->sem_base[i].semval; >> sem_unlock(sma, -1); > > Download attachment "ipc-fix.patch" of type "application/octet-stream" (721 bytes) Download attachment "ipc-fix-v2.patch" of type "application/octet-stream" (836 bytes)
Powered by blists - more mailing lists