Annotation of researchv10no/cmd/dist/lib/tryperm.c, revision 1.1.1.1

1.1       root        1: #define _POSIX_SOURCE
                      2: #include <ctype.h>
                      3: #include <stddef.h>
                      4: #include <stdlib.h>
                      5: #include <stdio.h>
                      6: #include <string.h>
                      7: #include <sys/types.h>
                      8: #include <sys/stat.h>
                      9: #include <fcntl.h>
                     10: #include <unistd.h>
                     11: #include "lib.h"
                     12: 
                     13: /*
                     14:  * determine if we can recursively create the given pathname.  not a
                     15:  * generally useful function since it destroys the pathname.
                     16:  */
                     17: static int
                     18: cancreate(char *path, int recurse)
                     19: {
                     20:        char *slash;
                     21: 
                     22:        for (;;) {
                     23:                slash = strrchr(path, '/');
                     24:                if (! slash)
                     25:                        return 0;       /* absolute pathnames only */
                     26:                *slash = '\0';
                     27:                if (!*path)
                     28:                        break;
                     29:                if (access(path, W_OK) == 0)
                     30:                        return 1;
                     31:                if (!recurse)
                     32:                        return 0;
                     33:                if (access(path, F_OK) == 0)
                     34:                        return 0;
                     35:        }
                     36:        return access("/", W_OK) == 0;
                     37: }
                     38:                
                     39: /*
                     40:  * try the instructions of the package on the given fd against the
                     41:  * permissions currently in the file system.  return 1 if we think we
                     42:  * ought to go ahead and try inspkg.
                     43:  * the right place to put this guy would be in the tarf command;
                     44:  * then eventually we could remove all tarfile support from dist
                     45:  * proper when (if?) most systems have adequate tar commands.
                     46:  */
                     47: int
                     48: tryperm(int fd)
                     49: {
                     50:        return 1;
                     51: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.