aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | libnetfs: implement file_get_translator_cntlJustus Winter2013-08-293-9/+53
| | | | | | | | | | | | | | | | | | This is a trivially adapted version of libdiskfs/file-get-transcntl.c. * libnetfs/file-get-transcntl.c: New file.
* | | daemons: fix setsid(2) in console-runJustus Winter2013-08-291-2/+3
| | | | | | | | | | | | | | | | | | Only run setsid(2) if the process is not already the group leader. * daemons/console-run.c (open_console): Fix setsid(2).
* | | hurd: add missing routines in process_reply.defsJustus Winter2013-08-291-0/+114
| | | | | | | | | | | | | | | | | | | | | Add the appropriate simpleroutine or skip directives to hurd/process_reply.defs matching the ones in hurd/process.defs. * hurd/process_reply.defs: Add missing routine declarations.
* | | exec: remove the BFD codeJustus Winter2013-08-293-557/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit removes the parts of the exec server that were once using the Binary File Descriptor library. As I understand it, the BFD code stopped working because it uses stdio streams and the glue code for that has never been ported to libio. The code has been #ifdefed out ever since. It may or may not work in its current state, so it is removed. If someone is interested, it can always be recovered from the version control system. * exec/exec.c: Remove all BFD related code. * exec/priv.h: Likewise. * TODO: Remove the corresponding item.
* | | exec: Remove #ifdef 0-out code for user specified exec servers.Justus Winter2013-08-281-81/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | This code was meant to allow the user to specify alternative exec servers using an environment variable. The Hurd uses the file system as namespace for server lookups, so the proper way to use one's own exec server seems to be the remap translator. * exec/exec.c (S_exec_exec): Remove unused code.
* | | Do not build gzip/bzip2 supportSamuel Thibault2013-08-281-4/+4
| | | | | | | | | | | | | | | * exec/Makefile (SRCS): Remove gzip and bzip2 sources. (OBJS): Remove gzip and bzip2 objects.
* | | Disable transparent gzip/bzip2 decompressionSamuel Thibault2013-08-281-1/+1
| | | | | | | | | | | | * exec/Makefile (CPPFLAGS): Do not define GZIP and BZIP2 macros.
* | | utils: add nullauth utilityJustus Winter2013-08-282-3/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | nullauth drops all authentication credentials and runs the given program. This is also useful to drop privileges on behalf of translators that do not need any credentials in some circumstances, e.g. % settrans -ap /hurd/nullauth -- /hurd/storeio -Tzero makes storeio run without any credentials. * utils/nullauth.c: New file. * utils/Makefile: Build nullauth.
* | | tmpfs: drop privileges in the tmpfs translatorJustus Winter2013-08-281-0/+6
| | | | | | | | | | | | * tmpfs/tmpfs.c (main): Drop privileges.
* | | trans: drop privileges in the null translatorJustus Winter2013-08-281-0/+5
| | | | | | | | | | | | * trans/null.c (main): Drop privileges.
* | | libshouldbeinlibc: Add nullauth.{c,h}Justus Winter2013-08-283-2/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | setnullauth () obtains an empty authentication handle and uses it for further authentication purposes. This effectively drops all Unix privileges. * libshouldbeinlibc/nullauth.c: New file. * libshouldbeinlibc/nullauth.h: Likewise. * libshouldbeinlibc/Makefile: Add nullauth.{c,h}.
* | | console-client: add daemonizing supportJustus Winter2013-08-282-7/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds daemonizing support using libdaemon. * console-client/console.c (daemonize): New variable. (options): Add --daemonize argument. (parse_opt): Handle --daemonize argument. (daemon_error): New error(3) like macro. (main): Daemonize. * console-client/Makefile: Use libdaemon specific build flags.
* | | Add configure checks for libdaemonJustus Winter2013-08-282-0/+11
| | | | | | | | | | | | | | | * configure.ac: Add check for libdaemon. * config.make.in: Make the libdaemon specific variables available.
* | | Define and use symbolic names for important processesJustus Winter2013-08-288-7/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * include/pids.h: New file. * init/init.c (frob_kernel_process): Use symbolic name for kernel process. * exec/exec.c (S_exec_init): Use symbolic name for startup process. * libdiskfs/boot-start.c (diskfs_S_fsys_init): Likewise. * libdiskfs/init-startup.c (_diskfs_init_completed): Likewise. * pfinet/main.c (arrange_shutdown_notification): Likewise. * proc/mgt.c (create_startup_proc): Likewise. * proc/main.c (main): Use symbolic name for proc process.
* | | Optimize translator string copySamuel Thibault2013-08-281-1/+1
| | | | | | | | | | | | | | | * libnetfs/file-get-translator.c (netfs_S_file_get_translator): Call memcpy instead of memmove.
* | | libnetfs: properly respond to file_get_translator requestsJustus Winter2013-08-281-0/+14
| |/ |/| | | | | | | | | | | | | Properly respond to file_get_translator requests for nodes with a passive translator record. * libnetfs/file-get-translator.c (netfs_S_file_get_translator): Handle passive translator records.
* | umount: add a umount utilityJustus Winter2013-08-282-4/+325
|/ | | | | | | | This adds a umount utility that implements most of the functions that the Linux umount utility provides, especially that subset that is used by the Debian package initscripts. * utils/umount.c: New file.
* sutils: fix the semantic of -t, --types in fstab.cJustus Winter2013-08-281-76/+27
| | | | | | | | | | | | | | | | | | | | | | | The mount utility on both Linux and FreeBSD allows one to either specify a whitelist or a blacklist of filesystem types to consider for --all. Prefixing the list with "no" indicates that the list is a blacklist. Furthermore, Linux' mount utility ignores a "no" prefix on any entry in the given list. Previously the Hurd variant first applied whitelist containing all positive values given and then filtered the resulting list using all negative values. But this makes little sense because each entry only has one value for the filesystem type (mnt_type) and all values are mutually exclusive. This patch adjusts the fstab handling code so that our mount utility behaves like the Linux mount utility. This code is used by both mount and fsck. The same argumentation applies to fsck as well. Like implemented in Linux mount, any "no" prefix is ignored to retain compatibility with the old behavior. * sutils/fstab.c (fstab_argp_create): Fix semantic of --types.
* sutils: allow multiple entries for the device "none"Justus Winter2013-08-281-2/+10
| | | | | | | | | Previously it was not possible to add two mount entries with the same device information to an fstab structure. This is easily fixed by breaking the assumption, that there is only one possible mount entry for the "none" device as used by many purely virtual file systems. * utils/fstab.c (fstab_find_device): Return NULL if name is "none".
* mount: ignore mounted filesystems if --all is givenJustus Winter2013-08-281-0/+9
| | | | | | | Linux' mount utility ignores mounted filesystems if mount --all is invoked. This patch makes our mount do the same. utils/mount.c (main): Ignore mounted filesystems if --all is given.
* mount: implement -O, --test-optsJustus Winter2013-08-284-4/+121
| | | | | | | | | | | | | | | | | --test-opts in combination with --all mounts only those filesystems with options matching the given set of options. Note that the semantic of the inverting "no" prefix differs from --types: While --types=nonfs,ufs means neither nfs nor ufs, --test-opts=nofoo,bar means not foo, but bar. * utils/match-options.h: New file. * utils/match-options.c: Likewise. (test_opts): New variable. (test_opts_len): Likewise. (match_options): New function. * utils/mount.c (parse_opt): Handle -O, --test-opts. (main): Use match_options as filter.
* mount: add -f and --fake argumentsJustus Winter2013-08-281-1/+28
| | | | | | | | Add -f and --fake arguments. This makes our mount more compatible with Linux mount. * utils/mount.c (argp_opts): Add -f and --fake. (do_mount): Fake the translator startup if --fake is given.
* mount: fix mount -oremount with one parameterJustus Winter2013-08-281-6/+23
| | | | | | | | This fixes mount -oremount when just given the mountpoint, e. g.: % mount -oremount,ro /tmp * util/mount.c (main): Add a one-argument form for remount.
* mount: add -n and --no-mtab argumentsJustus Winter2013-08-281-0/+5
| | | | | | | | | Add -n and --no-mtab arguments. As we do not write an mtab file, this is a trivial patch that just ignores this argument to be more compatible with Linux mount. * utils/mount.c (argp_opts): Add -n and --no-mtab. (parse_opt): Do nothing on 'n'.
* utils: escape arguments in remap.shJustus Winter2013-08-251-1/+7
| | | | | | | | | | | | | | | | remap.sh uses /bin/sh to first change the working directory and then execute the given program in the remap context. But the arguments given on the command line were not properly escaped: % '/bin/sh' '-c' 'echo $0' /bin/sh % remap '/bin/sh' '-c' 'echo $0' <empty line> % remap-fixed '/bin/sh' '-c' 'echo $0' /bin/sh * utils/remap.sh: Escape arguments handed to /bin/sh so that they are not evaluated prematurely.
* utils: escape arguments in fakeroot.shJustus Winter2013-08-251-2/+8
| | | | | | | | | | | | | | | | | | fakeroot.sh uses /bin/sh to first change the working directory and then execute the given program in the fakeroot context. But the arguments given on the command line were not properly escaped: % '/bin/sh' '-c' 'echo $0' /bin/sh % fakeroot-tcp '/bin/sh' '-c' 'echo $0' /bin/sh % fakeroot-hurd '/bin/sh' '-c' 'echo $0' <empty line> % fakeroot-hurd-fixed '/bin/sh' '-c' 'echo $0' /bin/sh * utils/fakeroot.sh: Escape arguments handed to /bin/sh so that they are not evaluated prematurely.
* Fix polling pfinet tun for writeSamuel Thibault2013-08-231-2/+11
| | | | * pfinet/tunnel.c (io_select_common): Also handle `SELECT_WRITE' case.
* config.make: Use more configure settings when building xkb-dataDavid Michael2013-08-162-1/+5
| | | | | | * config.make.in (datarootdir,LEX,YACC): New variables. * configure.ac (XKB_BASE): Drop extraneous "/share" from path. * configure.ac: Reset pkg-config status between tests.
* pfinet: Fix call to kfree_sSamuel Thibault2013-07-201-1/+1
| | | | | | | | | | | | | | kfree_s expects a pointer and a size argument. Currently the sizeof(cache) is used as size argument, this is certainly not what was intented. For reference, this code was present in Linux up to version 2.3.14 and was replaced in 2.3.15. Found using coccinelle and https://raw.github.com/coccinelle/coccinellery/master/sz/sz.cocci. * pfinet/linux-src/net/ipv4/ipmr.c (ipmr_cache_delete): Fix kfree_s call.
* Fix error handling macro EJustus Winter2013-07-191-1/+2
| | | | | | | Previously the macro argument err was expanded and thus potentially evaluated multiple times. This is fine for simple values or pure functions, but not for say iohelp_create_iouser. Fix this by evaluating the macro argument only once.
* libnetfs: fix consistency checkJustus Winter2013-07-151-1/+1
| | | | | | | | | | passive is not a zero terminated string but a char * combined with a length. If passivelen == 0, passive may very well be not NULL, and dereferencing that pointer might not be safe. At the very least the consistency check is wrong. Fix that by checking passivelen instead of passive. * libnetfs/file-set-trans.c (netfs_S_file_set_translator): Fix sanity check.
* libdiskfs: fix consistency checkJustus Winter2013-07-151-1/+1
| | | | | | | | | | passive is not a zero terminated string but a char * combined with a length. If passivelen == 0, passive may very well be not NULL, and dereferencing that pointer might not be safe. At the very least the consistency check is wrong. Fix that by checking passivelen instead of passive. * libdiskfs/file-set-trans.c (diskfs_S_file_set_translator): Fix sanity check.
* Fix directory rename in firmlinked directorySamuel Thibault2013-07-071-1/+1
| | | | | | | | | | | | checkpath browses directories up to look against renaming a directory into itself. It used to assume being able to stop at the root of the filesystem. But some per-opens have a shadow_root, where recursion has to stop too. This means checkpath does not check up to the root any more. This is fine, since we already prevent cross-shadow-root renames very early in dir-rename.c, we do not need to check outside of this shadow root. * libdiskfs/dir-renamed.c (checkpath): Also stop at the per-open shadow_root.
* swapon: add -v, --verbose argumentJustus Winter2013-07-061-0/+5
| | | | | | | | | This patch adds a --verbose argument to swapon and swapoff to make it more compatible with the corresponding Linux' utilities. Note that our swapon is verbose by default and has a --quiet argument to make it quiet, so a --verbose argument on it's own does nothing at all. * sutils/swapon.c (main): Handle -v argument.
* libfshelp: add missing importJustus Winter2013-07-051-0/+1
| | | | | | Add missing import of alloca.h. * libfshelp/set-options.c: Add missing import.
* Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurdSamuel Thibault2013-07-021-4/+14
|\
| * swapon: add -e/--ifexists optionPino Toscano2013-07-011-4/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the same command line option as in util-linux' swapon to not consider an error if the device/file of a swap entry in fstab does not exist (and not when activating a device specified as argument to `swapon'). * sutils/swapon.c (ifexists): New variable. (options): Add the 'e' option. (parse_opt) <'e'>: Handle case. (swaponoff): New argument skipnotexisting. Return 0 if open_store fails with ENOENT and SKIPNOTEXISTING is on. (main): Adapt swaponoff calls with 0 as parameter for command line arguments, and IFEXISTS for swap entries from fstab.
* | sutils: fix a compiler warningJustus Winter2013-07-021-1/+1
|/ | | | | | | | Fix a compiler warning by dropping the const qualifier. It is not appropriate to qualify pointers to dynamically allocated memory as const. * sutils/fstab.c (real_name): Drop const qualifier.
* tmpfs: fix parsing of fsys_set_options requestsJustus Winter2013-06-291-1/+1
| | | | | | | | Formerly setting the options using fsys_set_options did not work because runtime_argp.options was set to 0. This fixes "remounting" of tmpfs translators. * tmpfs/tmpfs.c (runtime_argp): Use options as option list.
* sutils: fix file_name_lookup_carefullyJustus Winter2013-06-291-32/+18
| | | | | | | | | | | | | | | | | | | file_name_lookup_carefully is like file_name_lookup but tries hard to avoid starting any passive translators while doing the lookup. The callback contains code to get a new handle to the root if it encounters a translator, but this code was not being executed if the node had no record of an passive translator, just an active one. Fix the callback by dropping the test for a passive translator. AIUI the current check for a passive translator makes no sense, as the code is supposed to fail on encountering a passive translator. This fixes lookups inside translators that have no passive translator. For example if /run is a tmpfs started only as active translator, touch /run/lock && mount tmpfs -t tmpfs /run/lock -o size=5M would fail. * sutils/clookup.c (lookup): Drop the test for an passive translator.
* Remove unused variableMiguel Figueiredo2013-06-021-1/+0
| | | | * utils/x.c (main): Remove unused variable.
* Remove unused variableMiguel Figueiredo2013-06-021-2/+0
| | | | * mach-defpager/default-pager.c : Remove unused variable.
* Remove unsused variablesMiguel Figueiredo2013-06-011-4/+0
| | | | * libthreads/cprocs.c : Remove unsused variables.
* Add missing breakMiguel Figueiredo2013-06-011-1/+2
| | | | * libcons/vcons-move-mouse.c (cons_vcons_move_mouse): Add missing break.
* Fix invalid memory accessMiguel Figueiredo2013-06-011-2/+1
| | | | * init/init.c (start_child): Don't free `arg' before it is used.
* Remove unused variableMiguel Figueiredo2013-06-011-3/+0
| | | | * exec/exec.c (check_section): Remove unused variable.
* Fix descriptor leakMiguel Figueiredo2013-06-011-2/+1
| | | | * console-client/xkb/compose.c (read_composefile): Always fclose `fc'.
* Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurdSamuel Thibault2013-06-011-0/+8
|\
| * Reset task priority when spawning a passive translatorRichard Braun2013-05-311-0/+8
| | | | | | | | | | | | | | | | | | | | | | Server threads spawned by libports attempt to adjust their priority and succeed when the server is privileged. This priority is currently inherited by child tasks, which could be passive translators owned by unprivileged users. Reset the priority of the task used for translator instantiation. * libfshelp/start-translator-long.c (fshelp_start_translator_long): Set new task priority to 25 (BASEPRI_USER).
* | Remove unused variableMiguel Figueiredo2013-06-011-2/+0
|/ | | | * console-client/trans.c (console_setup_node): Remove unused variable.