lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250314152939.2759573-9-serghox@gmail.com>
Date: Fri, 14 Mar 2025 18:29:29 +0300
From: Sergey Khimich <serghox@...il.com>
To: linux-media@...r.kernel.org
Cc: Philipp Zabel <p.zabel@...gutronix.de>,
	Mauro Carvalho Chehab <mchehab@...nel.org>,
	linux-kernel@...r.kernel.org,
	Vladimir Yakovlev <vovchkir@...il.com>,
	Maksim Turok <turok.m7@...il.com>
Subject: [PATCH 08/18] media: coda: Add log to finish_encode if buffer is too small

From: Vladimir Yakovlev <vovchkir@...il.com>

CODA_RET_ENC_PIC_FLAG flag means that bitstream buffer size
is not enough to save one frame data when buffer reset mode is used.
If this flag is set, currently encoded bitstream is corrupted.

Co-developed-by: Sergey Khimich <serghox@...il.com>
Signed-off-by: Sergey Khimich <serghox@...il.com>
Signed-off-by: Vladimir Yakovlev <vovchkir@...il.com>
---
 drivers/media/platform/chips-media/coda/coda-bit.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/media/platform/chips-media/coda/coda-bit.c b/drivers/media/platform/chips-media/coda/coda-bit.c
index 3e3bb3d64ec9..515eb8be4b86 100644
--- a/drivers/media/platform/chips-media/coda/coda-bit.c
+++ b/drivers/media/platform/chips-media/coda/coda-bit.c
@@ -1641,6 +1641,7 @@ static void coda_finish_encode(struct coda_ctx *ctx)
 	struct vb2_v4l2_buffer *src_buf, *dst_buf;
 	struct coda_dev *dev = ctx->dev;
 	u32 wr_ptr, start_ptr;
+	int val;
 
 	if (ctx->aborting)
 		return;
@@ -1674,7 +1675,12 @@ static void coda_finish_encode(struct coda_ctx *ctx)
 	coda_dbg(1, ctx, "frame size = %u\n", wr_ptr - start_ptr);
 
 	coda_read(dev, CODA_RET_ENC_PIC_SLICE_NUM);
-	coda_read(dev, CODA_RET_ENC_PIC_FLAG);
+	val = coda_read(dev, CODA_RET_ENC_PIC_FLAG);
+	if (val > 0) {
+		v4l2_err(&dev->v4l2_dev,
+			 "Encode fail. Encode buffer is too small\n");
+		// TODO what to do next?
+	}
 
 	dst_buf->flags &= ~(V4L2_BUF_FLAG_KEYFRAME |
 			    V4L2_BUF_FLAG_PFRAME |
-- 
2.30.2


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ