diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2006-01-09 15:10:14 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2006-01-09 15:10:14 +0000 |
commit | e3786825c0ccb9c8117db88bdd21cdc61800c617 (patch) | |
tree | 89115677e1ab4c819c0ca8aa4642ec2c1a02f4f7 /winsup/cygserver/sysv_sem.cc | |
parent | 104fffd24dbf116e320773d5fc816097f4d0e38e (diff) | |
download | cygnal-e3786825c0ccb9c8117db88bdd21cdc61800c617.tar.gz cygnal-e3786825c0ccb9c8117db88bdd21cdc61800c617.tar.bz2 cygnal-e3786825c0ccb9c8117db88bdd21cdc61800c617.zip |
Check FreeBSD upstream changes and apply important patches.
* sysv_sem.cc (__semctl): Check copyin return value (from 1.76).
* sysv_shm.cc (shminit): Actually use the iterating variable in the
for loop when trying to avoid overflow (from 1.102).
Diffstat (limited to 'winsup/cygserver/sysv_sem.cc')
-rw-r--r-- | winsup/cygserver/sysv_sem.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/winsup/cygserver/sysv_sem.cc b/winsup/cygserver/sysv_sem.cc index ee1bda856..bee24abbd 100644 --- a/winsup/cygserver/sysv_sem.cc +++ b/winsup/cygserver/sysv_sem.cc @@ -18,6 +18,7 @@ #define __FBSDID(s) const char version[] = (s) #endif __FBSDID("$FreeBSD: /repoman/r/ncvs/src/sys/kern/sysv_sem.c,v 1.70 2004/05/30 20:34:58 phk Exp $"); +/* CV, 2006-01-09: Inspected upstream up to version 1.78. */ #define _KERNEL 1 #define __BSD_VISIBLE 1 @@ -806,7 +807,7 @@ raced: if ((error = copyin(arg, &real_arg, sizeof(real_arg))) != 0) goto done2; array = (u_short *) sys_malloc(sizeof(*array) * count, M_TEMP, M_WAITOK); - copyin(real_arg.array, array, count * sizeof(*array)); + error = copyin(real_arg.array, array, count * sizeof(*array)); if (error) break; mtx_lock(sema_mtxp); |