]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Fix root cause: validate codec parameters early in tvh_context_setup
authorcopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Tue, 23 Sep 2025 11:51:32 +0000 (11:51 +0000)
committercopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Tue, 23 Sep 2025 11:51:32 +0000 (11:51 +0000)
Co-authored-by: Flole998 <9951871+Flole998@users.noreply.github.com>
src/transcoding/transcode/context.c
src/transcoding/transcode/helpers.c

index 6d939e8f034e434cb0299f65d7e406cce35006e6..c2bc8a0e353634aa1530e5c77cd7dd6671e7d4d8 100644 (file)
@@ -240,6 +240,12 @@ tvh_context_setup(TVHContext *self, const AVCodec *iavcodec, const AVCodec *oavc
     enum AVMediaType media_type = iavcodec->type;
     const char *media_type_name = av_get_media_type_string(media_type);
 
+    if (!iavcodec || !oavcodec) {
+        tvh_stream_log(self->stream, LOG_ERR,
+                       "invalid codec parameters: input=%p output=%p",
+                       iavcodec, oavcodec);
+        return -1;
+    }
     if (!(self->type = tvh_context_type_find(media_type))) {
         tvh_stream_log(self->stream, LOG_ERR,
                        "failed to find context type for '%s' media type",
index e54e420666eeed39dbd6ae96766d01a14b44d1eb..025512f63c695548eb2636ed5f77ed166a5a074b 100644 (file)
@@ -70,10 +70,6 @@ tvh_context_helper_find(struct TVHContextHelpers *list, const AVCodec *codec)
 {
     TVHContextHelper *helper = NULL;
 
-    if (!codec) {
-        return NULL;
-    }
-
     SLIST_FOREACH(helper, list, link) {
         if (helper->type == codec->type && helper->id == codec->id) {
             return helper;