Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c228a5fd authored by Govindaraj Rajagopal's avatar Govindaraj Rajagopal
Browse files

msm: vidc: ensure codec count is in supported session range



Ensure the count of supported encoder and decoder returned
from firmware are within the range of supported sessions.

Change-Id: If3eae7bc82dc8302444e2e4104fb6ae3cfbfed5a
Signed-off-by: default avatarGovindaraj Rajagopal <grajagop@codeaurora.org>
parent f5f31790
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -733,6 +733,13 @@ static int hfi_fill_codec_info(u8 *data_ptr,
	codecs = sys_init_done->dec_codec_supported;
	for (i = 0; i < 8 * sizeof(codecs); i++) {
		if ((1 << i) & codecs) {
			if (codec_count >= VIDC_MAX_SESSIONS) {
				dprintk(VIDC_ERR,
					"%s: codec count exceeding max sessions %d\n",
					__func__, VIDC_MAX_SESSIONS);
				break;
			}

			capability =
				&sys_init_done->capabilities[codec_count++];
			capability->codec =
@@ -741,9 +748,17 @@ static int hfi_fill_codec_info(u8 *data_ptr,
				vidc_get_hal_domain(HFI_VIDEO_DOMAIN_DECODER);
		}
	}

	codecs = sys_init_done->enc_codec_supported;
	for (i = 0; i < 8 * sizeof(codecs); i++) {
		if ((1 << i) & codecs) {
			if (codec_count >= VIDC_MAX_SESSIONS) {
				dprintk(VIDC_ERR,
					"%s: codec count exceeding max sessions %d\n",
					__func__, VIDC_MAX_SESSIONS);
				break;
			}

			capability =
				&sys_init_done->capabilities[codec_count++];
			capability->codec =