File libaom-CVE-2020-36130.patch of Package libaom.29084
Index: libaom-1.0.0/av1/av1_dx_iface.c
===================================================================
--- libaom-1.0.0.orig/av1/av1_dx_iface.c 2021-12-06 11:56:31.000000000 +0100
+++ libaom-1.0.0/av1/av1_dx_iface.c 2021-12-06 12:33:21.206671012 +0100
@@ -858,6 +858,7 @@ static aom_codec_err_t ctrl_get_last_qua
va_list args) {
int *const arg = va_arg(args, int *);
if (arg == NULL) return AOM_CODEC_INVALID_PARAM;
+ if (ctx->frame_workers == NULL) return AOM_CODEC_ERROR;
*arg =
((FrameWorkerData *)ctx->frame_workers[0].data1)->pbi->common.base_qindex;
return AOM_CODEC_OK;
@@ -921,6 +922,7 @@ static aom_codec_err_t ctrl_get_frame_he
frame_header_info->coded_tile_data_size = pbi->obu_size_hdr.size;
frame_header_info->coded_tile_data = pbi->obu_size_hdr.data;
frame_header_info->extra_size = pbi->frame_header_size;
+ return AOM_CODEC_OK;
} else {
return AOM_CODEC_ERROR;
}
@@ -1034,7 +1036,7 @@ static aom_codec_err_t ctrl_set_byte_ali
FrameWorkerData *const frame_worker_data = (FrameWorkerData *)worker->data1;
frame_worker_data->pbi->common.byte_alignment = byte_alignment;
}
- return AOM_CODEC_OK;
+ return AOM_CODEC_INVALID_PARAM;
}
static aom_codec_err_t ctrl_set_skip_loop_filter(aom_codec_alg_priv_t *ctx,
@@ -1057,6 +1059,8 @@ static aom_codec_err_t ctrl_get_accounti
(void)args;
return AOM_CODEC_INCAPABLE;
#else
+ Accounting **acct = va_arg(args, Accounting **);
+ if (acct) {
if (ctx->frame_workers) {
AVxWorker *const worker = ctx->frame_workers;
FrameWorkerData *const frame_worker_data = (FrameWorkerData *)worker->data1;
@@ -1066,6 +1070,8 @@ static aom_codec_err_t ctrl_get_accounti
return AOM_CODEC_OK;
}
return AOM_CODEC_ERROR;
+ }
+ return AOM_CODEC_INVALID_PARAM;
#endif
}
static aom_codec_err_t ctrl_set_decode_tile_row(aom_codec_alg_priv_t *ctx,