From 5017b2c845c235542b3101b9cf648f72b9f6ed3e Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 19 Apr 2001 22:53:58 +0000 Subject: * hurd/privports.c (__get_privileged_ports): Renamed with __. Use __ names for calls we make. (get_privileged_ports): Add alias. * hurd/hurd.h: Declare it with the __ name. * sysdeps/mach/hurd/reboot.c (reboot): Use __get_privileged_ports. * sysdeps/mach/hurd/adjtime.c (__adjtime): Likewise. * sysdeps/mach/hurd/settimeofday.c (__settimeofday): Likewise. --- ChangeLog | 8 ++++++++ hurd/hurd.h | 4 +++- hurd/privports.c | 14 ++++++++------ sysdeps/mach/hurd/adjtime.c | 11 +++++------ sysdeps/mach/hurd/reboot.c | 11 +++++------ sysdeps/mach/hurd/settimeofday.c | 11 +++++------ 6 files changed, 34 insertions(+), 25 deletions(-) diff --git a/ChangeLog b/ChangeLog index e5ddbdbe8c..90fdc5d4b2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2001-04-19 Roland McGrath + * hurd/privports.c (__get_privileged_ports): Renamed with __. + Use __ names for calls we make. + (get_privileged_ports): Add alias. + * hurd/hurd.h: Declare it with the __ name. + * sysdeps/mach/hurd/reboot.c (reboot): Use __get_privileged_ports. + * sysdeps/mach/hurd/adjtime.c (__adjtime): Likewise. + * sysdeps/mach/hurd/settimeofday.c (__settimeofday): Likewise. + * hurd/hurdsig.c (write_corefile): Check RLIMIT_CORE limit and do nothing if it's zero. diff --git a/hurd/hurd.h b/hurd/hurd.h index e9c2db8152..85ea4329db 100644 --- a/hurd/hurd.h +++ b/hurd/hurd.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1993,94,95,96,97,98,99 Free Software Foundation, Inc. +/* Copyright (C) 1993,94,95,96,97,98,99,2001 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -292,6 +292,8 @@ extern error_t hurd_sig_post (pid_t pid, int sig, mach_port_t refport); other than the proc server (such as a bootstrap filesystem) can set these variables to install the ports. */ +extern kern_return_t __get_privileged_ports (host_priv_t *host_priv_ptr, + device_t *device_master_ptr); extern kern_return_t get_privileged_ports (host_priv_t *host_priv_ptr, device_t *device_master_ptr); extern mach_port_t _hurd_host_priv, _hurd_device_master; diff --git a/hurd/privports.c b/hurd/privports.c index ef6388bd9d..955beeac42 100644 --- a/hurd/privports.c +++ b/hurd/privports.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1994, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1993,94,97,2001 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -25,7 +25,8 @@ mach_port_t _hurd_host_priv, _hurd_device_master; kern_return_t -get_privileged_ports (host_priv_t *host_priv_ptr, device_t *device_master_ptr) +__get_privileged_ports (host_priv_t *host_priv_ptr, + device_t *device_master_ptr) { if (! _hurd_host_priv) { @@ -46,15 +47,16 @@ get_privileged_ports (host_priv_t *host_priv_ptr, device_t *device_master_ptr) if (host_priv_ptr) { - mach_port_mod_refs (mach_task_self (), - _hurd_host_priv, MACH_PORT_RIGHT_SEND, 1); + __mach_port_mod_refs (mach_task_self (), + _hurd_host_priv, MACH_PORT_RIGHT_SEND, 1); *host_priv_ptr = _hurd_host_priv; } if (device_master_ptr) { - mach_port_mod_refs (mach_task_self (), - _hurd_device_master, MACH_PORT_RIGHT_SEND, 1); + __mach_port_mod_refs (mach_task_self (), + _hurd_device_master, MACH_PORT_RIGHT_SEND, 1); *device_master_ptr = _hurd_device_master; } return KERN_SUCCESS; } +weak_alias (__get_privileged_ports, get_privileged_ports) diff --git a/sysdeps/mach/hurd/adjtime.c b/sysdeps/mach/hurd/adjtime.c index 1af3a635dc..791bb4b92e 100644 --- a/sysdeps/mach/hurd/adjtime.c +++ b/sysdeps/mach/hurd/adjtime.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1993, 1995, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1991,93,95,97,2001 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -30,12 +30,11 @@ __adjtime (delta, olddelta) struct timeval *olddelta; { error_t err; - mach_port_t hostpriv, devmaster; + mach_port_t hostpriv; - if (err = __USEPORT (PROC, __proc_getprivports (port, - &hostpriv, &devmaster))) - return __hurd_fail (err); - __mach_port_deallocate (__mach_task_self (), devmaster); + err = __get_privileged_ports (&hostpriv, NULL); + if (err) + return __hurd_fail (EPERM); err = __host_adjust_time (hostpriv, /* `time_value_t' and `struct timeval' are in diff --git a/sysdeps/mach/hurd/reboot.c b/sysdeps/mach/hurd/reboot.c index ea298b2135..528bffa343 100644 --- a/sysdeps/mach/hurd/reboot.c +++ b/sysdeps/mach/hurd/reboot.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 93, 94, 97, 98 Free Software Foundation, Inc. +/* Copyright (C) 1992,93,94,97,98,2001 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -28,12 +28,11 @@ reboot (int howto) { error_t err; startup_t init; - mach_port_t hostpriv, devmaster; + mach_port_t hostpriv; - if (err = __USEPORT (PROC, __proc_getprivports (port, - &hostpriv, &devmaster))) - return __hurd_fail (err); - __mach_port_deallocate (__mach_task_self (), devmaster); + err = __get_privileged_ports (&hostpriv, NULL); + if (err) + return __hurd_fail (EPERM); err = __USEPORT (PROC, __proc_getmsgport (port, 1, &init)); if (!err) diff --git a/sysdeps/mach/hurd/settimeofday.c b/sysdeps/mach/hurd/settimeofday.c index e0e8135809..a728309e1e 100644 --- a/sysdeps/mach/hurd/settimeofday.c +++ b/sysdeps/mach/hurd/settimeofday.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 93, 94, 95, 97 Free Software Foundation, Inc. +/* Copyright (C) 1991,92,93,94,95,97,2001 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -29,7 +29,7 @@ __settimeofday (tv, tz) const struct timezone *tz; { error_t err; - mach_port_t hostpriv, devmaster; + mach_port_t hostpriv; if (tz != NULL) { @@ -37,10 +37,9 @@ __settimeofday (tv, tz) return -1; } - if (err = __USEPORT (PROC, __proc_getprivports (port, - &hostpriv, &devmaster))) - return __hurd_fail (err); - __mach_port_deallocate (__mach_task_self (), devmaster); + err = __get_privileged_ports (&hostpriv, NULL); + if (err) + return __hurd_fail (EPERM); /* `time_value_t' and `struct timeval' are in fact identical with the names changed. */ -- cgit v1.2.3