Changeset bc04436 in rtems


Ignore:
Timestamp:
Apr 23, 2012, 2:21:42 PM (8 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.11, master
Children:
3595533, 65c91a4
Parents:
e384438
git-author:
Sebastian Huber <sebastian.huber@…> (04/23/12 14:21:42)
git-committer:
Sebastian Huber <sebastian.huber@…> (04/23/12 14:26:13)
Message:

nfsclient: Use UID and GID of NFS handle

Use UID and GID of the NFS handle for node and symbolic link creation.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpukit/libfs/src/nfsclient/src/nfs.c

    re384438 rbc04436  
    11891189                chpt++;
    11901190        } else {
    1191                 *puid = RPCIOD_DEFAULT_ID;
    1192                 *pgid = RPCIOD_DEFAULT_ID;
     1191                *puid = geteuid();
     1192                *pgid = getegid();
    11931193                chpt  = *pPath;
    11941194        }
     
    18841884diropres                                res;
    18851885NfsNode                                 node = parentloc->node_access;
     1886Nfs                                     nfs  = node->nfs;
    18861887mode_t                                  type = S_IFMT & mode;
    18871888char                                    *dupname;
     
    19021903        SERP_ARGS(node).createarg.name                  = dupname;
    19031904        SERP_ARGS(node).createarg.attributes.mode       = mode;
    1904         /* TODO: either use our uid or use the Nfs credentials */
    1905         SERP_ARGS(node).createarg.attributes.uid        = 0;
    1906         SERP_ARGS(node).createarg.attributes.gid        = 0;
     1905        SERP_ARGS(node).createarg.attributes.uid        = nfs->uid;
     1906        SERP_ARGS(node).createarg.attributes.gid        = nfs->gid;
    19071907        SERP_ARGS(node).createarg.attributes.size       = 0;
    19081908        SERP_ARGS(node).createarg.attributes.atime.seconds      = now.tv_sec;
     
    19111911        SERP_ARGS(node).createarg.attributes.mtime.useconds     = now.tv_usec;
    19121912
    1913         if ( nfscall( node->nfs->server,
     1913        if ( nfscall( nfs->server,
    19141914                                                (type == S_IFDIR) ? NFSPROC_MKDIR : NFSPROC_CREATE,
    19151915                                                (xdrproc_t)xdr_createargs,      &SERP_FILE(node),
     
    19771977nfsstat                                 status;
    19781978NfsNode                                 node = parentloc->node_access;
     1979Nfs                                     nfs  = node->nfs;
    19791980char                                    *dupname;
    19801981
     
    19931994
    19941995        SERP_ARGS(node).symlinkarg.attributes.mode      = S_IFLNK | S_IRWXU | S_IRWXG | S_IRWXO;
    1995         /* TODO */
    1996         SERP_ARGS(node).symlinkarg.attributes.uid       = 0;
    1997         SERP_ARGS(node).symlinkarg.attributes.gid       = 0;
     1996        SERP_ARGS(node).symlinkarg.attributes.uid       = nfs->uid;
     1997        SERP_ARGS(node).symlinkarg.attributes.gid       = nfs->gid;
    19981998        SERP_ARGS(node).symlinkarg.attributes.size      = 0;
    19991999        SERP_ARGS(node).symlinkarg.attributes.atime.seconds  = now.tv_sec;
     
    20022002        SERP_ARGS(node).symlinkarg.attributes.mtime.useconds = now.tv_usec;
    20032003
    2004         if ( nfscall( node->nfs->server,
     2004        if ( nfscall( nfs->server,
    20052005                                                NFSPROC_SYMLINK,
    20062006                                                (xdrproc_t)xdr_symlinkargs,     &SERP_FILE(node),
Note: See TracChangeset for help on using the changeset viewer.