diff options
| author | Clark Williams <williams@redhat.com> | 2007-06-11 16:00:06 -0500 |
|---|---|---|
| committer | Clark Williams <williams@redhat.com> | 2007-06-11 16:00:06 -0500 |
| commit | 7ffaacde740bb073f0c7564ab3baa37615f4b58e (patch) | |
| tree | 9a0a6ad24a241344a44b0117ba2efdebdc569724 /src | |
| parent | b44556b827bf9e95db8025351380ddb54388fb26 (diff) | |
| download | mock-7ffaacde740bb073f0c7564ab3baa37615f4b58e.tar.gz mock-7ffaacde740bb073f0c7564ab3baa37615f4b58e.tar.xz mock-7ffaacde740bb073f0c7564ab3baa37615f4b58e.zip | |
merged mock-helper from mock-0-6-branch
Diffstat (limited to 'src')
| -rw-r--r-- | src/mock-helper.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/mock-helper.c b/src/mock-helper.c index 4b28061..0393d31 100644 --- a/src/mock-helper.c +++ b/src/mock-helper.c @@ -145,11 +145,12 @@ do_command (const char *filename, char *const argv[], int use_selinux_preload) [1] = "HOME=/root" }; int retval; - char **arg; + //char **arg; size_t idx=2; size_t i; - char *envvar; +#ifdef USE_SELINUX char *ld_preload; +#endif /* elevate privileges */ setreuid (geteuid (), geteuid ()); @@ -218,21 +219,25 @@ do_mount (int argc, char *argv[]) /* see if it's -t proc or -t devpts */ if ((strncmp ("-t", argv[2], 2) == 0) && - (strncmp ("proc", argv[3], 4) == 0)) - { + (strncmp ("proc", argv[3], 4) == 0)) { /* see if we're mounting proc to somewhere in rootsdir */ if (strncmp (rootsdir, argv[5], strlen (rootsdir)) != 0) error ("proc: mount not allowed on %s", argv[5]); } else if ((strncmp ("-t", argv[2], 2) == 0) && - (strncmp ("devpts", argv[3], 6) == 0)) - { + (strncmp ("devpts", argv[3], 6) == 0)) { if (argc < 5) error ("devpts: not enough mount arguments"); /* see if we're mounting devpts to somewhere in rootsdir */ else if (strncmp (rootsdir, argv[5], strlen (rootsdir)) != 0) error ("devpts: mount not allowed on %s", argv[5]); } + else if ((strncmp("--bind", argv[2], 6) == 0) && + (strncmp("/dev", argv[3], 4) == 0)) { + /* make sure we're only mounting /dev in the chroot */ + if (strncmp(rootsdir, argv[4], strlen(rootsdir)) != 0) + error("can only bindmount /dev in chroot"); + } else error ("unallowed mount type"); |
