summaryrefslogtreecommitdiffstats
path: root/xlators/storage/posix/src/posix-handle.c
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/storage/posix/src/posix-handle.c')
-rw-r--r--xlators/storage/posix/src/posix-handle.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/xlators/storage/posix/src/posix-handle.c b/xlators/storage/posix/src/posix-handle.c
index ab202d79dc9..7ab654316ee 100644
--- a/xlators/storage/posix/src/posix-handle.c
+++ b/xlators/storage/posix/src/posix-handle.c
@@ -295,13 +295,16 @@ posix_handle_pump (xlator_t *this, char *buf, int len, int maxlen,
}
blen = link_len - 48;
+
+ if(len + blen >= maxlen)
+ goto err;
+
memmove (buf + base_len + blen, buf + base_len,
(strlen (buf) - base_len) + 1);
strncpy (base_str + pfx_len, linkname + 6, 42);
- if (len + blen < maxlen)
- strncpy (buf + pfx_len, linkname + 6, link_len - 6);
+ strncpy (buf + pfx_len, linkname + 6, link_len - 6);
out:
return len + blen;
err: