summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2021-03-09 20:16:04 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2021-03-12 23:21:35 +0100
commit85685297c28958f3a8fa50a50ed3a6171e7f34c2 (patch)
tree6411945476ff0cd3208cf9a7207a6403e1fe1d2b /libavcodec
parent30cd7feb2dd497b16edb6d7c09a83eb49f89645d (diff)
avcodec/cbs: Remove redundant checks for CodedBitstreamContext.codec
Setting this field happens immediately after the allocation in ff_cbs_init(), so the whole CBS code may presume that any CodedBitstreamContext has this set. Lots of code already presumed this, yet ff_cbs_close() did it inconsistently: It checked before checking whether the CodedBitstreamType has a close function; yet it simply unconditionally read ctx->codec->priv_class. Coverity complained about this in issue #1473564, which this commit fixes. Reviewed-by: Mark Thompson <sw@jkqxz.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/cbs.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/libavcodec/cbs.c b/libavcodec/cbs.c
index ecf22b3fdb..c7f69845fb 100644
--- a/libavcodec/cbs.c
+++ b/libavcodec/cbs.c
@@ -94,7 +94,7 @@ int ff_cbs_init(CodedBitstreamContext **ctx_ptr,
return AVERROR(ENOMEM);
ctx->log_ctx = log_ctx;
- ctx->codec = type;
+ ctx->codec = type; /* Must be before any error */
if (type->priv_data_size) {
ctx->priv_data = av_mallocz(ctx->codec->priv_data_size);
@@ -119,7 +119,7 @@ int ff_cbs_init(CodedBitstreamContext **ctx_ptr,
void ff_cbs_flush(CodedBitstreamContext *ctx)
{
- if (ctx->codec && ctx->codec->flush)
+ if (ctx->codec->flush)
ctx->codec->flush(ctx);
}
@@ -130,7 +130,7 @@ void ff_cbs_close(CodedBitstreamContext **ctx_ptr)
if (!ctx)
return;
- if (ctx->codec && ctx->codec->close)
+ if (ctx->codec->close)
ctx->codec->close(ctx);
av_freep(&ctx->write_buffer);