# 2.11BSD#431 - /usr/src/usr.sbin/chroot/chroot.c

##### Functions

    fatal             X
    main              X

##### Variables

    copyright         X

       1: /*
       2:  * Copyright (c) 1988 The Regents of the University of California.
       3:  * All rights reserved.
       4:  *
       5:  * Redistribution and use in source and binary forms are permitted
       6:  * provided that the above copyright notice and this paragraph are
       7:  * duplicated in all such forms and that any documentation,
       8:  * advertising materials, and other materials related to such
       9:  * distribution and use acknowledge that the software was developed
      10:  * by the University of California, Berkeley.  The name of the
      11:  * University may not be used to endorse or promote products derived
      12:  * from this software without specific prior written permission.
      13:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
      14:  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
      15:  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
      16:  */
      17:
      18: #ifndef lint
      19: char copyright[] =
      20: "@(#) Copyright (c) 1988 The Regents of the University of California.\n\
      21:  All rights reserved.\n";
      22: #endif /* not lint */
      23:
      24: #ifndef lint
      25: static char sccsid[] = "@(#)chroot.c	5.4 (Berkeley) 3/5/89";
      26: #endif /* not lint */
      27:
      28: #include <stdio.h>
      29: #include "pathnames.h"
      30:
      31: main(argc, argv)
      32:     int argc;
      33:     char **argv;
      34: {
      35:     extern int errno;
      36:     char *shell, *getenv(), *strerror();
      37:
      38:     if (argc < 2) {
      39:         fprintf(stderr, "usage: chroot newroot [command]\n");
      40:         exit(1);
      41:     }
      42:     if (chdir(argv[1]) || chroot(argv[1]))
      43:         fatal(argv[1]);
      44:     setuid(getuid());
      45:     if (argv[2]) {
      46:         execvp(argv[2], &argv[2]);
      47:         fatal(argv[2]);
      48:     } else {
      49:         if (!(shell = getenv("SHELL")))
      50:             shell = _PATH_BSHELL;
      51:         execlp(shell, shell, "-i", (char *)NULL);
      52:         fatal(shell);
      53:     }
      54:     /* NOTREACHED */
      55: }
      56:
      57: fatal(msg)
      58:     char *msg;
      59: {
      60:     extern int errno;
      61:
      62:     fprintf(stderr, "chroot: %s: %s\n", msg, strerror(errno));
      63:     exit(1);
      64: }

#### Defined functions

fatal defined in line 57; used 3 times

- in line 43-52(3)

main defined in line 31; never used

#### Defined variables

copyright defined in line 19; never used
sccsid defined in line 25; never used

Last modified: 1989-05-01 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 959 |