diff options
author | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 17:59:22 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 17:59:22 -0800 |
commit | 6db68906c1bb26066a32c8e5be0c523da41cf08f (patch) | |
tree | cfbf4280e3c3ff14986811401e4d5c58c2108f3d /ipc | |
parent | 2a7117ac7c120c085c56745f753166b821022858 (diff) | |
download | history-6db68906c1bb26066a32c8e5be0c523da41cf08f.tar.gz |
v2.4.1.4 -> v2.4.2
- sync up more with Alan
- Urban Widmark: smbfs and HIGHMEM fix
- Chris Mason: reiserfs tail unpacking fix ("null bytes in reiserfs files")
- Adan Richter: new cpia usb ID
- Hugh Dickins: misc small sysv ipc fixes
- Andries Brouwer: remove overly restrictive sector size check for
SCSI cd-roms
Diffstat (limited to 'ipc')
-rw-r--r-- | ipc/msg.c | 2 | ||||
-rw-r--r-- | ipc/sem.c | 4 | ||||
-rw-r--r-- | ipc/util.c | 2 | ||||
-rw-r--r-- | ipc/util.h | 4 |
4 files changed, 6 insertions, 6 deletions
diff --git a/ipc/msg.c b/ipc/msg.c index 41f7dbcbe8828d..a2eadc97902355 100644 --- a/ipc/msg.c +++ b/ipc/msg.c @@ -473,7 +473,7 @@ asmlinkage long sys_msgctl (int msqid, int cmd, struct msqid_ds *buf) int success_return; if (!buf) return -EFAULT; - if(cmd == MSG_STAT && msqid > msg_ids.size) + if(cmd == MSG_STAT && msqid >= msg_ids.size) return -EINVAL; memset(&tbuf,0,sizeof(tbuf)); diff --git a/ipc/sem.c b/ipc/sem.c index 0ef4113ccba061..c9c424dfa9650e 100644 --- a/ipc/sem.c +++ b/ipc/sem.c @@ -467,7 +467,7 @@ int semctl_nolock(int semid, int semnum, int cmd, int version, union semun arg) struct semid64_ds tbuf; int id; - if(semid > sem_ids.size) + if(semid >= sem_ids.size) return -EINVAL; memset(&tbuf,0,sizeof(tbuf)); @@ -922,7 +922,7 @@ asmlinkage long sys_semop (int semid, struct sembuf *tsops, unsigned nsops) tmp = sem_lock(semid); if(tmp==NULL) { - if(queue.status != -EIDRM) + if(queue.prev != NULL) BUG(); current->semsleeping = NULL; error = -EIDRM; diff --git a/ipc/util.c b/ipc/util.c index b891e7775ac525..85d7a65b230150 100644 --- a/ipc/util.c +++ b/ipc/util.c @@ -185,7 +185,7 @@ struct kern_ipc_perm* ipc_rmid(struct ipc_ids* ids, int id) { struct kern_ipc_perm* p; int lid = id % SEQ_MULTIPLIER; - if(lid > ids->size) + if(lid >= ids->size) BUG(); p = ids->entries[lid].p; ids->entries[lid].p = NULL; diff --git a/ipc/util.h b/ipc/util.h index ff4bfb0fc99780..f05f6c213187ff 100644 --- a/ipc/util.h +++ b/ipc/util.h @@ -54,7 +54,7 @@ extern inline struct kern_ipc_perm* ipc_get(struct ipc_ids* ids, int id) { struct kern_ipc_perm* out; int lid = id % SEQ_MULTIPLIER; - if(lid > ids->size) + if(lid >= ids->size) return NULL; out = ids->entries[lid].p; @@ -69,7 +69,7 @@ extern inline struct kern_ipc_perm* ipc_lock(struct ipc_ids* ids, int id) { struct kern_ipc_perm* out; int lid = id % SEQ_MULTIPLIER; - if(lid > ids->size) + if(lid >= ids->size) return NULL; spin_lock(&ids->ary); |