minix/servers/pfs/table.c
Ben Gras 072d916c1c vfs: fix null deref, pfs: add fchmod()
. vfs read_only() assumes vnode->v_vmnt is non-NULL, but it can
	  be NULL sometimes
	. e.g. fchmod() on UDS triggered NULL deref; add a check and
	  add REQ_CHMOD to pfs so unix domain sockets can be fchmod()ded
	. add to test56

Change-Id: I83c840f101b647516897cc99fcf472116d762012
2013-04-19 17:06:56 +02:00

80 lines
2.7 KiB
C

/* This file contains the table used to map system call numbers onto the
* routines that perform them.
*/
#define _TABLE
#include "fs.h"
#include "inode.h"
#include "buf.h"
#include "uds.h"
/* File System Handlers (pfs) */
int (*fs_call_vec[])(message *fs_m_in, message *fs_m_out) = {
no_sys, /* 0 not used */
no_sys, /* 1 */
fs_putnode, /* 2 */
no_sys, /* 3 */
fs_ftrunc, /* 4 */
no_sys, /* 5 */
fs_chmod, /* 6 */
no_sys, /* 7 */
fs_stat, /* 8 */
no_sys, /* 9 */
no_sys, /* 10 */
no_sys, /* 11 */
no_sys, /* 12 */
no_sys, /* 13 */
no_sys, /* 14 */
fs_unmount, /* 15 */
fs_sync, /* 16 */
no_sys, /* 17 */
no_sys, /* 18 */
fs_readwrite, /* 19 */
fs_readwrite, /* 20 */
no_sys, /* 21 */
no_sys, /* 22 */
no_sys, /* 23 */
no_sys, /* 24 */
no_sys, /* 25 */
no_sys, /* 26 */
no_sys, /* 27 */
no_sys, /* 28 */
fs_newnode, /* 29 */
no_sys, /* 30 */
no_sys, /* 31 */
no_sys, /* 32 */
};
/* Device Handlers (/dev/uds) */
int (*dev_call_vec[])(message *dev_m_in, message *dev_m_out) = {
uds_cancel, /* 0 CANCEL */
no_sys, /* 1 */
no_sys, /* 2 */
no_sys, /* 3 */
no_sys, /* 4 */
no_sys, /* 5 */
uds_open, /* 6 DEV_OPEN */
uds_close, /* 7 DEV_CLOSE */
no_sys, /* 8 */
no_sys, /* 9 */
no_sys, /* 10 TTY_SETPGRP */
no_sys, /* 11 TTY_EXIT */
uds_select, /* 12 DEV_SELECT */
no_sys, /* 13 DEV_STATUS */
uds_open, /* 14 DEV_REOPEN */
no_sys, /* 15 */
no_sys, /* 16 */
no_sys, /* 17 */
no_sys, /* 18 */
no_sys, /* 19 */
uds_read, /* 20 DEV_READ_S */
uds_write, /* 21 DEV_WRITE_S */
no_sys, /* 22 DEV_SCATTER_S */
no_sys, /* 23 DEV_GATHER_S */
uds_ioctl, /* 24 DEV_IOCTL_S */
no_sys, /* 25 DEV_MMAP_S */
};