Message ID | 1377532029-12777-1-git-send-email-s.nawrocki@samsung.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Sylwester, Thank you for the patch. On Monday 26 August 2013 17:47:09 Sylwester Nawrocki wrote: > Modify the bytesused/data_offset check to not fail if both bytesused > and data_offset is set to 0. This should minimize possible issues in > existing applications which worked before we enforced the plane lengths > for output buffers checks introduced in commit 8023ed09cb278004a2 > "videobuf2-core: Verify planes lengths for output buffers" > > Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- > drivers/media/v4l2-core/videobuf2-core.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/v4l2-core/videobuf2-core.c > b/drivers/media/v4l2-core/videobuf2-core.c index 594c75e..de0e87f 100644 > --- a/drivers/media/v4l2-core/videobuf2-core.c > +++ b/drivers/media/v4l2-core/videobuf2-core.c > @@ -353,7 +353,9 @@ static int __verify_length(struct vb2_buffer *vb, const > struct v4l2_buffer *b) > > if (b->m.planes[plane].bytesused > length) > return -EINVAL; > - if (b->m.planes[plane].data_offset >= > + > + if (b->m.planes[plane].data_offset > 0 && > + b->m.planes[plane].data_offset >= > b->m.planes[plane].bytesused) > return -EINVAL; > }
Hello, On 8/26/2013 5:47 PM, Sylwester Nawrocki wrote: > Modify the bytesused/data_offset check to not fail if both bytesused > and data_offset is set to 0. This should minimize possible issues in > existing applications which worked before we enforced the plane lengths > for output buffers checks introduced in commit 8023ed09cb278004a2 > "videobuf2-core: Verify planes lengths for output buffers" > > Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Marek Szyprowski <m.szyprowski@samsung.com> > --- > drivers/media/v4l2-core/videobuf2-core.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/v4l2-core/videobuf2-core.c b/drivers/media/v4l2-core/videobuf2-core.c > index 594c75e..de0e87f 100644 > --- a/drivers/media/v4l2-core/videobuf2-core.c > +++ b/drivers/media/v4l2-core/videobuf2-core.c > @@ -353,7 +353,9 @@ static int __verify_length(struct vb2_buffer *vb, const struct v4l2_buffer *b) > > if (b->m.planes[plane].bytesused > length) > return -EINVAL; > - if (b->m.planes[plane].data_offset >= > + > + if (b->m.planes[plane].data_offset > 0 && > + b->m.planes[plane].data_offset >= > b->m.planes[plane].bytesused) > return -EINVAL; > } Best regards
diff --git a/drivers/media/v4l2-core/videobuf2-core.c b/drivers/media/v4l2-core/videobuf2-core.c index 594c75e..de0e87f 100644 --- a/drivers/media/v4l2-core/videobuf2-core.c +++ b/drivers/media/v4l2-core/videobuf2-core.c @@ -353,7 +353,9 @@ static int __verify_length(struct vb2_buffer *vb, const struct v4l2_buffer *b) if (b->m.planes[plane].bytesused > length) return -EINVAL; - if (b->m.planes[plane].data_offset >= + + if (b->m.planes[plane].data_offset > 0 && + b->m.planes[plane].data_offset >= b->m.planes[plane].bytesused) return -EINVAL; }