From: Mauro Carvalho Chehab Date: Thu, 28 Dec 2017 12:11:40 +0000 (-0500) Subject: media: dvb_vb2: limit reqbufs size to a sane value X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=2c06aa7c31cfad2b95e298e55075b962b7e4dc2b;p=openwrt%2Fstaging%2Fblogic.git media: dvb_vb2: limit reqbufs size to a sane value It is not a good idea to let users to request a very high buffer size. So, add an upper limit. Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/dvb-core/dvb_vb2.c b/drivers/media/dvb-core/dvb_vb2.c index 36313387d8b2..4223d33c60dc 100644 --- a/drivers/media/dvb-core/dvb_vb2.c +++ b/drivers/media/dvb-core/dvb_vb2.c @@ -18,6 +18,8 @@ #include "dvbdev.h" #include "dvb_vb2.h" +#define DVB_V2_MAX_SIZE (4096 * 188) + static int vb2_debug; module_param(vb2_debug, int, 0644); @@ -330,6 +332,12 @@ int dvb_vb2_reqbufs(struct dvb_vb2_ctx *ctx, struct dmx_requestbuffers *req) { int ret; + /* Adjust size to a sane value */ + if (req->size > DVB_V2_MAX_SIZE) + req->size = DVB_V2_MAX_SIZE; + + /* FIXME: round req->size to a 188 or 204 multiple */ + ctx->buf_siz = req->size; ctx->buf_cnt = req->count; ret = vb2_core_reqbufs(&ctx->vb_q, VB2_MEMORY_MMAP, &req->count);