Deleted Added
full compact
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 ---