summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2024-03-22 14:25:44 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2024-03-22 23:32:15 +0100
commitb9fcc135c570e254b8cb8d63c50877646bf97e40 (patch)
tree154db6f5db508cd65ac18d69a14f9cf9240cfa24
parent244db7103797df3f3f87e4c1bd8cf5224e6ebff9 (diff)
avcodec/libx265: Pass logctx as void*, not AVClass**
The latter need not be save, because av_log() expects to get a pointer to an AVClass-enabled structure and not only a fake object. If this function were actually be called in the following way: const AVClass *avcl = avctx->av_class; handle_mdcv(&avcl, ); the AVClass's item_name would expect to point to an actual AVCodecContext, potentially leading to a segfault. Reviewed-by: Jan Ekström <jeebjp@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r--libavcodec/libx265.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c
index d7620878b8..45349a85b9 100644
--- a/libavcodec/libx265.c
+++ b/libavcodec/libx265.c
@@ -175,7 +175,7 @@ static av_cold int libx265_param_parse_int(AVCodecContext *avctx,
return 0;
}
-static int handle_mdcv(const AVClass **avcl, const x265_api *api,
+static int handle_mdcv(void *logctx, const x265_api *api,
x265_param *params,
const AVMasteringDisplayMetadata *mdcv)
{
@@ -198,7 +198,7 @@ static int handle_mdcv(const AVClass **avcl, const x265_api *api,
if (api->param_parse(params, "master-display", buf) ==
X265_PARAM_BAD_VALUE) {
- av_log(avcl, AV_LOG_ERROR,
+ av_log(logctx, AV_LOG_ERROR,
"Invalid value \"%s\" for param \"master-display\".\n",
buf);
return AVERROR(EINVAL);
@@ -230,7 +230,7 @@ static int handle_side_data(AVCodecContext *avctx, const x265_api *api,
if (mdcv_sd) {
int ret = handle_mdcv(
- &avctx->av_class, api, params,
+ avctx, api, params,
(AVMasteringDisplayMetadata *)mdcv_sd->data);
if (ret < 0)
return ret;