Commit ae664e82 authored by Liang Zhen's avatar Liang Zhen Committed by Greg Kroah-Hartman

staging: lustre: libcfs: replace LNET_MAX_IOCTL_BUF_LEN with something bigger

The size of LNET_MAX_IOCTL_BUF_LEN restricts the size of
libcfs ioctl to the maximum needs of the LNet layer. Since
libcfs also handles things like debugging we might need
to let user land pass more data to or from the kernel than
what is possible
Signed-off-by: default avatarLiang Zhen <liang.zhen@intel.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5435
Reviewed-on: http://review.whamcloud.com/11313Reviewed-by: default avatarBobi Jam <bobijam@gmail.com>
Reviewed-by: default avatarJohann Lombardi <johann.lombardi@intel.com>
Reviewed-by: default avatarOleg Drokin <oleg.drokin@intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 7e221b60
...@@ -49,6 +49,9 @@ struct libcfs_ioctl_hdr { ...@@ -49,6 +49,9 @@ struct libcfs_ioctl_hdr {
__u32 ioc_version; __u32 ioc_version;
}; };
/** max size to copy from userspace */
#define LIBCFS_IOC_DATA_MAX (128 * 1024)
struct libcfs_ioctl_data { struct libcfs_ioctl_data {
struct libcfs_ioctl_hdr ioc_hdr; struct libcfs_ioctl_hdr ioc_hdr;
......
...@@ -54,9 +54,6 @@ ...@@ -54,9 +54,6 @@
# define DEBUG_SUBSYSTEM S_LNET # define DEBUG_SUBSYSTEM S_LNET
#define LNET_MAX_IOCTL_BUF_LEN (sizeof(struct lnet_ioctl_net_config) + \
sizeof(struct lnet_ioctl_config_data))
#include "../../include/linux/libcfs/libcfs.h" #include "../../include/linux/libcfs/libcfs.h"
#include <asm/div64.h> #include <asm/div64.h>
...@@ -186,7 +183,7 @@ static int libcfs_ioctl(struct cfs_psdev_file *pfile, unsigned long cmd, ...@@ -186,7 +183,7 @@ static int libcfs_ioctl(struct cfs_psdev_file *pfile, unsigned long cmd,
* do a check here to restrict the size of the memory * do a check here to restrict the size of the memory
* to allocate to guard against DoS attacks. * to allocate to guard against DoS attacks.
*/ */
if (buf_len > LNET_MAX_IOCTL_BUF_LEN) { if (buf_len > LIBCFS_IOC_DATA_MAX) {
CERROR("LNET: user buffer exceeds kernel buffer\n"); CERROR("LNET: user buffer exceeds kernel buffer\n");
return -EINVAL; return -EINVAL;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment