summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-08-28utils: add nullauth utilityJustus Winter
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.
2013-08-28tmpfs: drop privileges in the tmpfs translatorJustus Winter
* tmpfs/tmpfs.c (main): Drop privileges.
2013-08-28trans: drop privileges in the null translatorJustus Winter
* trans/null.c (main): Drop privileges.
2013-08-28libshouldbeinlibc: Add nullauth.{c,h}Justus Winter
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}.
2013-08-28console-client: add daemonizing supportJustus Winter
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.
2013-08-28Add configure checks for libdaemonJustus Winter
* configure.ac: Add check for libdaemon. * config.make.in: Make the libdaemon specific variables available.
2013-08-28Define and use symbolic names for important processesJustus Winter
* 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.
2013-08-28Optimize translator string copySamuel Thibault
* libnetfs/file-get-translator.c (netfs_S_file_get_translator): Call memcpy instead of memmove.
2013-08-28libnetfs: properly respond to file_get_translator requestsJustus Winter
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.
2013-08-28umount: add a umount utilityJustus Winter
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.
2013-08-28sutils: fix the semantic of -t, --types in fstab.cJustus Winter
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.
2013-08-28sutils: allow multiple entries for the device "none"Justus Winter
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".
2013-08-28mount: ignore mounted filesystems if --all is givenJustus Winter
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.
2013-08-28mount: implement -O, --test-optsJustus Winter
--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.
2013-08-28mount: add -f and --fake argumentsJustus Winter
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.
2013-08-28mount: fix mount -oremount with one parameterJustus Winter
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.
2013-08-28mount: add -n and --no-mtab argumentsJustus Winter
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'.
2013-08-25utils: escape arguments in remap.shJustus Winter
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.
2013-08-25utils: escape arguments in fakeroot.shJustus Winter
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.
2013-08-23Fix polling pfinet tun for writeSamuel Thibault
* pfinet/tunnel.c (io_select_common): Also handle `SELECT_WRITE' case.
2013-08-16config.make: Use more configure settings when building xkb-dataDavid Michael
* 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.
2013-07-20pfinet: Fix call to kfree_sSamuel Thibault
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.
2013-07-19Fix error handling macro EJustus Winter
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.
2013-07-15libnetfs: fix consistency checkJustus Winter
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.
2013-07-15libdiskfs: fix consistency checkJustus Winter
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.
2013-07-07Fix directory rename in firmlinked directorySamuel Thibault
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.
2013-07-06swapon: add -v, --verbose argumentJustus Winter
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.
2013-07-05libfshelp: add missing importJustus Winter
Add missing import of alloca.h. * libfshelp/set-options.c: Add missing import.
2013-07-02Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurdSamuel Thibault
2013-07-02sutils: fix a compiler warningJustus Winter
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.
2013-07-01swapon: add -e/--ifexists optionPino Toscano
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.
2013-06-29tmpfs: fix parsing of fsys_set_options requestsJustus Winter
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.
2013-06-29sutils: fix file_name_lookup_carefullyJustus Winter
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.
2013-06-02Remove unused variableMiguel Figueiredo
* utils/x.c (main): Remove unused variable.
2013-06-02Remove unused variableMiguel Figueiredo
* mach-defpager/default-pager.c : Remove unused variable.
2013-06-01Remove unsused variablesMiguel Figueiredo
* libthreads/cprocs.c : Remove unsused variables.
2013-06-01Add missing breakMiguel Figueiredo
* libcons/vcons-move-mouse.c (cons_vcons_move_mouse): Add missing break.
2013-06-01Fix invalid memory accessMiguel Figueiredo
* init/init.c (start_child): Don't free `arg' before it is used.
2013-06-01Remove unused variableMiguel Figueiredo
* exec/exec.c (check_section): Remove unused variable.
2013-06-01Fix descriptor leakMiguel Figueiredo
* console-client/xkb/compose.c (read_composefile): Always fclose `fc'.
2013-06-01Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurdSamuel Thibault
2013-06-01Remove unused variableMiguel Figueiredo
* console-client/trans.c (console_setup_node): Remove unused variable.
2013-05-31Reset task priority when spawning a passive translatorRichard Braun
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).
2013-05-30Remove unused variablesMiguel Figueiredo
* mach-defpager/kalloc.c (kalloc_init): remove unused variables
2013-05-27Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurdSamuel Thibault
2013-05-27Do not compute debugging information by defaultSamuel Thibault
* mach-defpager/kalloc.c (DEBUG): Do not define macro.
2013-05-22Fix some errors in the texinfo documentationRichard Braun
* doc/gpl.texinfo: Replace @unnumbered with @node and @section commands. * doc/hurd.texi: Fix call to @setchapternewpage, remove the @node and @section commands that are now in gpl.texinfo, and remove an erroneous occurrence of 'attributes' before a command.
2013-05-13Revert "utils/vmstat: Use gnumach.defs from gnumach"Samuel Thibault
This reverts commit 202339d49461ce6dcffd3a5b3690537daea5ef38.
2013-05-05utils/vmstat: Use gnumach.defs from gnumachDavid Michael
The gnumach installation provides the include file mach/gnumach.defs instead of mach/gnumach.h. This runs the defs file through MIG and builds the result for vmstat. * utils/vmstat.c: Replace <mach/gnumach.h> with "gnumach_U.h". * utils/Makefile (vmstat): Add rule to depend on gnumach_U.o. * Makeconf (mach_defs_names): Add gnumach.
2013-05-05SYMLOOP_MAX may be undefined under some build flagsSamuel Thibault
* libdiskfs/boot-start.c (diskfs_start_bootstrap): Use value returned by sysconf (_SC_SYMLOOP_MAX) instead of SYMLOOP_MAX.