X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=libcfs%2Flibcfs%2Flinux%2Flinux-curproc.c;h=70510c990c9679c5625a7fea0878a457ef5aac12;hb=4f18daa42192090b135606816bcb3a6dd8777f0a;hp=92c48d947e10c04261ccbfb669fb1774ba4a8eb8;hpb=cda0a8abf5bbfe0f3fc12454c1d3d8efdcbda17c;p=fs%2Flustre-release.git diff --git a/libcfs/libcfs/linux/linux-curproc.c b/libcfs/libcfs/linux/linux-curproc.c index 92c48d9..70510c9 100644 --- a/libcfs/libcfs/linux/linux-curproc.c +++ b/libcfs/libcfs/linux/linux-curproc.c @@ -59,29 +59,6 @@ #define cfs_cap_pack(cap) (cap) #define cfs_cap_unpack(cap) (cap) -void cfs_cap_raise(cfs_cap_t cap) -{ - struct cred *cred; - if ((cred = prepare_creds())) { - cap_raise(cred->cap_effective, cfs_cap_unpack(cap)); - commit_creds(cred); - } -} - -void cfs_cap_lower(cfs_cap_t cap) -{ - struct cred *cred; - if ((cred = prepare_creds())) { - cap_lower(cred->cap_effective, cfs_cap_unpack(cap)); - commit_creds(cred); - } -} - -int cfs_cap_raised(cfs_cap_t cap) -{ - return cap_raised(current_cap(), cfs_cap_unpack(cap)); -} - static void cfs_kernel_cap_pack(kernel_cap_t kcap, cfs_cap_t *cap) { #if defined (_LINUX_CAPABILITY_VERSION) && _LINUX_CAPABILITY_VERSION == 0x19980330 @@ -262,9 +239,14 @@ int cfs_get_environ(const char *key, char *value, int *val_len) !memcmp(entry, key, key_len)) { entry += key_len + 1; entry_len -= key_len + 1; - /* The 'value' buffer passed in is too small.*/ - if (entry_len >= *val_len) + + /* The 'value' buffer passed in is too small. + * Copy what fits, but return -EOVERFLOW. */ + if (entry_len >= *val_len) { + memcpy(value, entry, *val_len); + value[*val_len - 1] = 0; GOTO(out, rc = -EOVERFLOW); + } memcpy(value, entry, entry_len); *val_len = entry_len; @@ -284,9 +266,6 @@ out: } EXPORT_SYMBOL(cfs_get_environ); -EXPORT_SYMBOL(cfs_cap_raise); -EXPORT_SYMBOL(cfs_cap_lower); -EXPORT_SYMBOL(cfs_cap_raised); EXPORT_SYMBOL(cfs_curproc_cap_pack); EXPORT_SYMBOL(cfs_capable);