From 234c9175790c7227683cfddda32ec695ec593bd0 Mon Sep 17 00:00:00 2001 From: etheisen Date: Sun, 28 Apr 1996 07:38:22 +0000 Subject: [PATCH] Added dummy mount/umount() syscalls for bogus Linux applications that blindly call mount(). These dummy calls always return EPERM. Fixed uncommented NetBSD tag problem encountered when using makesyscalls.sh. --- sys/compat/linux/files.linux | 3 +- sys/compat/linux/linux_mount.c | 60 ++++++++++++++++++++++++++++++++ sys/compat/linux/syscalls.master | 9 ++--- 3 files changed, 67 insertions(+), 5 deletions(-) create mode 100644 sys/compat/linux/linux_mount.c diff --git a/sys/compat/linux/files.linux b/sys/compat/linux/files.linux index 7d733b00b22..129d967f3f5 100644 --- a/sys/compat/linux/files.linux +++ b/sys/compat/linux/files.linux @@ -1,4 +1,4 @@ -# $OpenBSD: files.linux,v 1.3 1996/04/17 05:23:42 mickey Exp $ +# $OpenBSD: files.linux,v 1.4 1996/04/28 07:38:22 etheisen Exp $ # $NetBSD: files.linux,v 1.4 1996/03/08 04:55:59 mycroft Exp $ # # Config.new file description for machine-independent Linux compat code. @@ -19,3 +19,4 @@ file compat/linux/linux_socket.c compat_linux file compat/linux/linux_syscalls.c compat_linux file compat/linux/linux_sysent.c compat_linux file compat/linux/linux_termios.c compat_linux +file compat/linux/linux_mount.c compat_linux diff --git a/sys/compat/linux/linux_mount.c b/sys/compat/linux/linux_mount.c new file mode 100644 index 00000000000..12eca6ebbb1 --- /dev/null +++ b/sys/compat/linux/linux_mount.c @@ -0,0 +1,60 @@ +/* $OpenBSD: linux_mount.c,v 1.1 1996/04/28 07:38:23 etheisen Exp $ */ +/* + * Copyright (c) 1996 Erik Theisen + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include + +/* + * These are just dummy mount/umount functions + * who's purpose is to satisfy brain dead code + * that bindly calls mount(). They always + * return EPERM. + * + * You really shouldn't be running code via + * emulation that mounts FSs. + */ +int +linux_sys_mount(specialfile, dir, filesystemtype, rwflag, data) + char *specialfile; + char *dir; + char *filesystemtype; + long rwflag; + void *data; +{ + return(LINUX_EPERM); +} + +int +linux_sys_umount(specialfile) + char *specialfile; +{ + return(LINUX_EPERM); +} + + + + + diff --git a/sys/compat/linux/syscalls.master b/sys/compat/linux/syscalls.master index f5f49826ed6..77884b88db4 100644 --- a/sys/compat/linux/syscalls.master +++ b/sys/compat/linux/syscalls.master @@ -1,5 +1,5 @@ - $OpenBSD: syscalls.master,v 1.4 1996/04/17 05:24:13 mickey Exp $ - $NetBSD: syscalls.master,v 1.15 1995/12/18 14:35:10 fvdl Exp $ + $OpenBSD: syscalls.master,v 1.5 1996/04/28 07:38:24 etheisen Exp $ +; $NetBSD: syscalls.master,v 1.15 1995/12/18 14:35:10 fvdl Exp $ ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 @@ -68,8 +68,9 @@ 19 NOARGS { long compat_43_sys_lseek(int fd, long offset, \ int whence); } 20 NOARGS { pid_t sys_getpid(void); } -21 UNIMPL mount -22 UNIMPL umount +21 STD { int linux_sys_mount(char *specialfile, char *dir, \ + char *filesystemtype, long rwflag, void *data); } +22 STD { int linux_sys_umount(char *specialfile); } 23 NOARGS { int sys_setuid(uid_t uid); } 24 NOARGS { uid_t sys_getuid(void); } 25 UNIMPL stime -- 2.20.1