[COMMON] media: smfc: fix bugs reported by Coverity
authorCho KyongHo <pullip.cho@samsung.com>
Tue, 29 Sep 2015 11:42:47 +0000 (20:42 +0900)
committerCosmin Tanislav <demonsingur@gmail.com>
Mon, 22 Apr 2024 17:22:19 +0000 (20:22 +0300)
This patch includes the fixes for CID 187514, CID187540 and 187531.

Change-Id: I225fa93071e0e57f1e58825961d74cd6b315578e
Signed-off-by: Cho KyongHo <pullip.cho@samsung.com>
drivers/media/platform/exynos/smfc/smfc-regs.c
drivers/media/platform/exynos/smfc/smfc-stream-parser.c
drivers/media/platform/exynos/smfc/smfc.h

index e4bcba78a88ce50a42836af6ce496a02ca3ec6f9..d88a4d5514e8ff4e7923c1ce0d244d60d04c434d 100644 (file)
@@ -437,7 +437,7 @@ bool smfc_hwstatus_okay(struct smfc_dev *smfc, struct smfc_ctx *ctx)
        __raw_writel(reg, smfc->reg + REG_MAIN_JPEG_CNTL);
 
        val = __raw_readl(smfc->reg + REG_MAIN_INT_STATUS);
-       if (smfc_is_capable(ctx->smfc, V4L2_CAP_EXYNOS_JPEG_B2B_COMPRESSION))
+       if (smfc_is_capable(smfc, V4L2_CAP_EXYNOS_JPEG_B2B_COMPRESSION))
                val2 = __raw_readl(smfc->reg + REG_SEC_INT_STATUS);
 
        if (!val && !val2) {
@@ -455,7 +455,7 @@ bool smfc_hwstatus_okay(struct smfc_dev *smfc, struct smfc_ctx *ctx)
                return false;
        }
 
-       if (!!(ctx->flags & SMFC_CTX_B2B_COMPRESS) && !val2) {
+       if (ctx && !!(ctx->flags & SMFC_CTX_B2B_COMPRESS) && !val2) {
                dev_err(smfc->dev, "Secondary image is not completed\n");
                return false;
        }
index 951056e73452c931e140bb15c0c53e9de2b96578..528e31a3ba31fce76a818aa9b8398679ff37d3a6 100644 (file)
@@ -20,6 +20,8 @@
 
 static bool smfc_alloc_tables(struct smfc_ctx *ctx)
 {
+       int i;
+
        if (!ctx->quantizer_tables) {
                ctx->quantizer_tables = kmalloc(
                                sizeof(*ctx->quantizer_tables), GFP_KERNEL);
@@ -27,10 +29,8 @@ static bool smfc_alloc_tables(struct smfc_ctx *ctx)
                        return false;
        }
        memset(ctx->quantizer_tables, 0, sizeof(*ctx->quantizer_tables));
-       ctx->quantizer_tables->compsel[0] = INVALID_QTBLIDX;
-       ctx->quantizer_tables->compsel[1] = INVALID_QTBLIDX;
-       ctx->quantizer_tables->compsel[2] = INVALID_QTBLIDX;
-       ctx->quantizer_tables->compsel[3] = INVALID_QTBLIDX;
+       for (i = 0; i < SMFC_MAX_QTBL_COUNT; i++)
+               ctx->quantizer_tables->compsel[i] = INVALID_QTBLIDX;
 
        if (!ctx->huffman_tables) {
                ctx->huffman_tables = kmalloc(
index 1b02196bdf55fc1d788561dc195952247cae3c5a..222f53ff3ab35bfe2d7e5b0cebccd94f352f2d4d 100644 (file)
@@ -148,7 +148,7 @@ struct smfc_decomp_htable {
 struct smfc_decomp_qtable {
        /* quantizers are *NOT* stored in the zig-zag scan order */
        u8 table[SMFC_MAX_QTBL_COUNT][SMFC_MCU_SIZE];
-       char compsel[SMFC_MAX_NUM_COMP]; /* compsel[0] for component 1 */
+       char compsel[SMFC_MAX_QTBL_COUNT];
 };
 
 struct smfc_ctx {