DF-2697 / mqcreate.c
/* * DF-2697 setup helper (run by ROOT). * Creates the target POSIX message queue: owned by root:wheel, mode 0660. * mq_euid/mq_egid are copied from the creator's cred (sys_mqueue.c), * so the queue is group-writable by gid 0 (wheel) only. */ #include <stdio.h> #include <errno.h> #include <fcntl.h> #include <mqueue.h> int main(void) { struct mq_attr attr; mqd_t mqd; attr.mq_maxmsg = 4; attr.mq_msgsize = 64; mq_unlink("/svgidtest"); /* idempotent re-create */ attr.mq_maxmsg = 4; attr.mq_msgsize = 64; mqd = mq_open("/svgidtest", O_CREAT | O_EXCL | O_RDWR, 0660, &attr); if (mqd == (mqd_t)-1) { perror("mq_open(create)"); return (1); } printf("created /svgidtest mode 0660 root:wheel (mqd=%d)\n", (int)mqd); mq_close(mqd); return (0); } |