From: adilger Date: Tue, 8 Jul 2008 17:49:14 +0000 (+0000) Subject: Branch b1_6 X-Git-Tag: GIT_EPOCH_B_RELEASE_1_6_7~2^3~484 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=1d0f1620b03e822e1d6a8324f65350f86ad5fc2a;p=fs%2Flustre-release.git Branch b1_6 Don't try to copy more bytes from userspace than it has supplied. b=13868 --- diff --git a/lustre/ldlm/ldlm_resource.c b/lustre/ldlm/ldlm_resource.c index d63f45f..cf8405e 100644 --- a/lustre/ldlm/ldlm_resource.c +++ b/lustre/ldlm/ldlm_resource.c @@ -136,12 +136,14 @@ static int lprocfs_wr_lru_size(struct file *file, const char *buffer, unsigned long count, void *data) { struct ldlm_namespace *ns = data; - char dummy[MAX_STRING_SIZE + 1], *end; + char dummy[MAX_STRING_SIZE + 1] = { '\0' }, *end; unsigned long tmp; int lru_resize; - dummy[MAX_STRING_SIZE] = '\0'; - if (copy_from_user(dummy, buffer, MAX_STRING_SIZE)) + if (count >= sizeof(dummy) || count == 0) + return -EINVAL; + + if (copy_from_user(dummy, buffer, count)) return -EFAULT; if (strncmp(dummy, "clear", 5) == 0) {