sysv_msg.c (66085) | sysv_msg.c (68024) |
---|---|
1/* $FreeBSD: head/sys/kern/sysv_msg.c 66085 2000-09-19 22:59:22Z peter $ */ | 1/* $FreeBSD: head/sys/kern/sysv_msg.c 68024 2000-10-31 01:34:00Z rwatson $ */ |
2 3/* 4 * Implementation of SVID messages 5 * 6 * Author: Daniel Boulet 7 * 8 * Copyright 1993 Daniel Boulet and RTMX Inc. 9 * --- 15 unchanged lines hidden (view full) --- 25#include <sys/systm.h> 26#include <sys/sysproto.h> 27#include <sys/kernel.h> 28#include <sys/proc.h> 29#include <sys/msg.h> 30#include <sys/sysent.h> 31#include <sys/sysctl.h> 32#include <sys/malloc.h> | 2 3/* 4 * Implementation of SVID messages 5 * 6 * Author: Daniel Boulet 7 * 8 * Copyright 1993 Daniel Boulet and RTMX Inc. 9 * --- 15 unchanged lines hidden (view full) --- 25#include <sys/systm.h> 26#include <sys/sysproto.h> 27#include <sys/kernel.h> 28#include <sys/proc.h> 29#include <sys/msg.h> 30#include <sys/sysent.h> 31#include <sys/sysctl.h> 32#include <sys/malloc.h> |
33#include <sys/jail.h> |
|
33 34static MALLOC_DEFINE(M_MSG, "msg", "SVID compatible message queues"); 35 36static void msginit __P((void *)); 37 38#define MSG_DEBUG 39#undef MSG_DEBUG_OK 40 --- 164 unchanged lines hidden (view full) --- 205 int a2; 206 int a3; 207 int a4; 208 int a5; 209 int a6; 210 } */ *uap; 211{ 212 | 34 35static MALLOC_DEFINE(M_MSG, "msg", "SVID compatible message queues"); 36 37static void msginit __P((void *)); 38 39#define MSG_DEBUG 40#undef MSG_DEBUG_OK 41 --- 164 unchanged lines hidden (view full) --- 206 int a2; 207 int a3; 208 int a4; 209 int a5; 210 int a6; 211 } */ *uap; 212{ 213 |
214 if (!jail_sysvipc_allowed && p->p_prison != NULL) 215 return (ENOSYS); 216 |
|
213 if (uap->which >= sizeof(msgcalls)/sizeof(msgcalls[0])) 214 return (EINVAL); 215 return ((*msgcalls[uap->which])(p, &uap->a2)); 216} 217 218static void 219msg_freehdr(msghdr) 220 struct msg *msghdr; --- 37 unchanged lines hidden (view full) --- 258 int rval, eval; 259 struct msqid_ds msqbuf; 260 register struct msqid_ds *msqptr; 261 262#ifdef MSG_DEBUG_OK 263 printf("call to msgctl(%d, %d, 0x%x)\n", msqid, cmd, user_msqptr); 264#endif 265 | 217 if (uap->which >= sizeof(msgcalls)/sizeof(msgcalls[0])) 218 return (EINVAL); 219 return ((*msgcalls[uap->which])(p, &uap->a2)); 220} 221 222static void 223msg_freehdr(msghdr) 224 struct msg *msghdr; --- 37 unchanged lines hidden (view full) --- 262 int rval, eval; 263 struct msqid_ds msqbuf; 264 register struct msqid_ds *msqptr; 265 266#ifdef MSG_DEBUG_OK 267 printf("call to msgctl(%d, %d, 0x%x)\n", msqid, cmd, user_msqptr); 268#endif 269 |
270 if (!jail_sysvipc_allowed && p->p_prison != NULL) 271 return (ENOSYS); 272 |
|
266 msqid = IPCID_TO_IX(msqid); 267 268 if (msqid < 0 || msqid >= msginfo.msgmni) { 269#ifdef MSG_DEBUG_OK 270 printf("msqid (%d) out of range (0<=msqid<%d)\n", msqid, 271 msginfo.msgmni); 272#endif 273 return(EINVAL); --- 120 unchanged lines hidden (view full) --- 394 int msgflg = uap->msgflg; 395 struct ucred *cred = p->p_ucred; 396 register struct msqid_ds *msqptr = NULL; 397 398#ifdef MSG_DEBUG_OK 399 printf("msgget(0x%x, 0%o)\n", key, msgflg); 400#endif 401 | 273 msqid = IPCID_TO_IX(msqid); 274 275 if (msqid < 0 || msqid >= msginfo.msgmni) { 276#ifdef MSG_DEBUG_OK 277 printf("msqid (%d) out of range (0<=msqid<%d)\n", msqid, 278 msginfo.msgmni); 279#endif 280 return(EINVAL); --- 120 unchanged lines hidden (view full) --- 401 int msgflg = uap->msgflg; 402 struct ucred *cred = p->p_ucred; 403 register struct msqid_ds *msqptr = NULL; 404 405#ifdef MSG_DEBUG_OK 406 printf("msgget(0x%x, 0%o)\n", key, msgflg); 407#endif 408 |
409 if (!jail_sysvipc_allowed && p->p_prison != NULL) 410 return (ENOSYS); 411 |
|
402 if (key != IPC_PRIVATE) { 403 for (msqid = 0; msqid < msginfo.msgmni; msqid++) { 404 msqptr = &msqids[msqid]; 405 if (msqptr->msg_qbytes != 0 && 406 msqptr->msg_perm.key == key) 407 break; 408 } 409 if (msqid < msginfo.msgmni) { --- 96 unchanged lines hidden (view full) --- 506 register struct msg *msghdr; 507 short next; 508 509#ifdef MSG_DEBUG_OK 510 printf("call to msgsnd(%d, 0x%x, %d, %d)\n", msqid, user_msgp, msgsz, 511 msgflg); 512#endif 513 | 412 if (key != IPC_PRIVATE) { 413 for (msqid = 0; msqid < msginfo.msgmni; msqid++) { 414 msqptr = &msqids[msqid]; 415 if (msqptr->msg_qbytes != 0 && 416 msqptr->msg_perm.key == key) 417 break; 418 } 419 if (msqid < msginfo.msgmni) { --- 96 unchanged lines hidden (view full) --- 516 register struct msg *msghdr; 517 short next; 518 519#ifdef MSG_DEBUG_OK 520 printf("call to msgsnd(%d, 0x%x, %d, %d)\n", msqid, user_msgp, msgsz, 521 msgflg); 522#endif 523 |
524 if (!jail_sysvipc_allowed && p->p_prison != NULL) 525 return (ENOSYS); 526 |
|
514 msqid = IPCID_TO_IX(msqid); 515 516 if (msqid < 0 || msqid >= msginfo.msgmni) { 517#ifdef MSG_DEBUG_OK 518 printf("msqid (%d) out of range (0<=msqid<%d)\n", msqid, 519 msginfo.msgmni); 520#endif 521 return(EINVAL); --- 308 unchanged lines hidden (view full) --- 830 int eval; 831 short next; 832 833#ifdef MSG_DEBUG_OK 834 printf("call to msgrcv(%d, 0x%x, %d, %ld, %d)\n", msqid, user_msgp, 835 msgsz, msgtyp, msgflg); 836#endif 837 | 527 msqid = IPCID_TO_IX(msqid); 528 529 if (msqid < 0 || msqid >= msginfo.msgmni) { 530#ifdef MSG_DEBUG_OK 531 printf("msqid (%d) out of range (0<=msqid<%d)\n", msqid, 532 msginfo.msgmni); 533#endif 534 return(EINVAL); --- 308 unchanged lines hidden (view full) --- 843 int eval; 844 short next; 845 846#ifdef MSG_DEBUG_OK 847 printf("call to msgrcv(%d, 0x%x, %d, %ld, %d)\n", msqid, user_msgp, 848 msgsz, msgtyp, msgflg); 849#endif 850 |
851 if (!jail_sysvipc_allowed && p->p_prison != NULL) 852 return (ENOSYS); 853 |
|
838 msqid = IPCID_TO_IX(msqid); 839 840 if (msqid < 0 || msqid >= msginfo.msgmni) { 841#ifdef MSG_DEBUG_OK 842 printf("msqid (%d) out of range (0<=msqid<%d)\n", msqid, 843 msginfo.msgmni); 844#endif 845 return(EINVAL); --- 240 unchanged lines hidden --- | 854 msqid = IPCID_TO_IX(msqid); 855 856 if (msqid < 0 || msqid >= msginfo.msgmni) { 857#ifdef MSG_DEBUG_OK 858 printf("msqid (%d) out of range (0<=msqid<%d)\n", msqid, 859 msginfo.msgmni); 860#endif 861 return(EINVAL); --- 240 unchanged lines hidden --- |