Coverity CID 2951, 2953, 2954: Add KASSERTS before null deref

This commit is contained in:
christos 2006-09-29 19:39:43 +00:00
parent a178085551
commit 1d0edbd583
1 changed files with 4 additions and 2 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: sysv_sem.c,v 1.63 2006/07/23 22:06:11 ad Exp $ */ /* $NetBSD: sysv_sem.c,v 1.64 2006/09/29 19:39:43 christos Exp $ */
/*- /*-
* Copyright (c) 1999 The NetBSD Foundation, Inc. * Copyright (c) 1999 The NetBSD Foundation, Inc.
@ -46,7 +46,7 @@
*/ */
#include <sys/cdefs.h> #include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: sysv_sem.c,v 1.63 2006/07/23 22:06:11 ad Exp $"); __KERNEL_RCSID(0, "$NetBSD: sysv_sem.c,v 1.64 2006/09/29 19:39:43 christos Exp $");
#define SYSVSEM #define SYSVSEM
@ -374,6 +374,7 @@ semctl1(struct lwp *l, int semid, int semnum, int cmd, void *v,
case IPC_SET: case IPC_SET:
if ((error = ipcperm(cred, &semaptr->sem_perm, IPC_M))) if ((error = ipcperm(cred, &semaptr->sem_perm, IPC_M)))
return (error); return (error);
KASSERT(sembuf != NULL);
semaptr->sem_perm.uid = sembuf->sem_perm.uid; semaptr->sem_perm.uid = sembuf->sem_perm.uid;
semaptr->sem_perm.gid = sembuf->sem_perm.gid; semaptr->sem_perm.gid = sembuf->sem_perm.gid;
semaptr->sem_perm.mode = (semaptr->sem_perm.mode & ~0777) | semaptr->sem_perm.mode = (semaptr->sem_perm.mode & ~0777) |
@ -384,6 +385,7 @@ semctl1(struct lwp *l, int semid, int semnum, int cmd, void *v,
case IPC_STAT: case IPC_STAT:
if ((error = ipcperm(cred, &semaptr->sem_perm, IPC_R))) if ((error = ipcperm(cred, &semaptr->sem_perm, IPC_R)))
return (error); return (error);
KASSERT(sembuf != NULL);
memcpy(sembuf, semaptr, sizeof(struct semid_ds)); memcpy(sembuf, semaptr, sizeof(struct semid_ds));
break; break;