Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LU-10698 obdclass: allow specifying complex jobids
[fs/lustre-release.git]
/
libcfs
/
libcfs
/
linux
/
linux-curproc.c
diff --git
a/libcfs/libcfs/linux/linux-curproc.c
b/libcfs/libcfs/linux/linux-curproc.c
index
92c48d9
..
fee47a2
100644
(file)
--- a/
libcfs/libcfs/linux/linux-curproc.c
+++ b/
libcfs/libcfs/linux/linux-curproc.c
@@
-262,9
+262,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;
!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);
GOTO(out, rc = -EOVERFLOW);
+ }
memcpy(value, entry, entry_len);
*val_len = entry_len;
memcpy(value, entry, entry_len);
*val_len = entry_len;