diff mbox

[FFmpeg-devel] Fixing rare dshow input crash

Message ID CAKAeJadwg-yx85o-RpJUzbOc7wozBBU6LGt7Grp5CcGxCy01sw@mail.gmail.com
State New
Headers show

Commit Message

Alexey Potakhov Sept. 5, 2019, 8:48 p.m. UTC
re-sending without tabs.

On Wed, Sep 4, 2019 at 6:22 PM Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote:
>
> Am Do., 5. Sept. 2019 um 00:08 Uhr schrieb Alexey Potakhov <alex@potahov.com>:
>
> > In some rare cases when IAMStreamConfig_GetStreamCaps returns
> > an error avformat_open_input() crashes with access violation.
>
> Tabs are rejected by our repository, please remove them and resend.
>
> Carl Eugen
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
From c15f00b4e70c60ac38009905b4d2c2f3032967a6 Mon Sep 17 00:00:00 2001
From: Alexey Potakhov <alex@potahov.com>
Date: Wed, 4 Sep 2019 17:54:24 -0400
Subject: [PATCH] Fixing rare dshow input crash

---
 libavdevice/dshow.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

Comments

Roger Pack Jan. 29, 2020, 7:03 a.m. UTC | #1
Good catch.
Or maybe this?

diff --git a/libavdevice/dshow.c b/libavdevice/dshow.c
index d7f5bd7..96e4374 100644
--- a/libavdevice/dshow.c
+++ b/libavdevice/dshow.c
@@ -453,6 +453,7 @@ next:
         if (type->pbFormat)
             CoTaskMemFree(type->pbFormat);
         CoTaskMemFree(type);
+        type = NULL;
     }
 end:
     IAMStreamConfig_Release(config);

On Thu, Sep 5, 2019 at 2:56 PM Alexey Potakhov <alex@potahov.com> wrote:
>
> re-sending without tabs.
>
> On Wed, Sep 4, 2019 at 6:22 PM Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote:
> >
> > Am Do., 5. Sept. 2019 um 00:08 Uhr schrieb Alexey Potakhov <alex@potahov.com>:
> >
> > > In some rare cases when IAMStreamConfig_GetStreamCaps returns
> > > an error avformat_open_input() crashes with access violation.
> >
> > Tabs are rejected by our repository, please remove them and resend.
> >
> > Carl Eugen
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel@ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
> > To unsubscribe, visit link above, or email
> > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Paul B Mahol Jan. 29, 2020, 8:39 a.m. UTC | #2
Please incorporate this change in previous bigger patch. It is ready for merge.

On 1/29/20, Roger Pack <rogerdpack2@gmail.com> wrote:
> Good catch.
> Or maybe this?
>
> diff --git a/libavdevice/dshow.c b/libavdevice/dshow.c
> index d7f5bd7..96e4374 100644
> --- a/libavdevice/dshow.c
> +++ b/libavdevice/dshow.c
> @@ -453,6 +453,7 @@ next:
>          if (type->pbFormat)
>              CoTaskMemFree(type->pbFormat);
>          CoTaskMemFree(type);
> +        type = NULL;
>      }
>  end:
>      IAMStreamConfig_Release(config);
>
> On Thu, Sep 5, 2019 at 2:56 PM Alexey Potakhov <alex@potahov.com> wrote:
>>
>> re-sending without tabs.
>>
>> On Wed, Sep 4, 2019 at 6:22 PM Carl Eugen Hoyos <ceffmpeg@gmail.com>
>> wrote:
>> >
>> > Am Do., 5. Sept. 2019 um 00:08 Uhr schrieb Alexey Potakhov
>> > <alex@potahov.com>:
>> >
>> > > In some rare cases when IAMStreamConfig_GetStreamCaps returns
>> > > an error avformat_open_input() crashes with access violation.
>> >
>> > Tabs are rejected by our repository, please remove them and resend.
>> >
>> > Carl Eugen
>> > _______________________________________________
>> > ffmpeg-devel mailing list
>> > ffmpeg-devel@ffmpeg.org
>> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>> >
>> > To unsubscribe, visit link above, or email
>> > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel@ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Roger Pack Feb. 26, 2020, 5:33 a.m. UTC | #3
Original bigger patch is enough for now.  Please merge, thanks!

On Wed, Jan 29, 2020 at 1:40 AM Paul B Mahol <onemda@gmail.com> wrote:
>
> Please incorporate this change in previous bigger patch. It is ready for merge.
>
> On 1/29/20, Roger Pack <rogerdpack2@gmail.com> wrote:
> > Good catch.
> > Or maybe this?
> >
> > diff --git a/libavdevice/dshow.c b/libavdevice/dshow.c
> > index d7f5bd7..96e4374 100644
> > --- a/libavdevice/dshow.c
> > +++ b/libavdevice/dshow.c
> > @@ -453,6 +453,7 @@ next:
> >          if (type->pbFormat)
> >              CoTaskMemFree(type->pbFormat);
> >          CoTaskMemFree(type);
> > +        type = NULL;
> >      }
> >  end:
> >      IAMStreamConfig_Release(config);
> >
> > On Thu, Sep 5, 2019 at 2:56 PM Alexey Potakhov <alex@potahov.com> wrote:
> >>
> >> re-sending without tabs.
> >>
> >> On Wed, Sep 4, 2019 at 6:22 PM Carl Eugen Hoyos <ceffmpeg@gmail.com>
> >> wrote:
> >> >
> >> > Am Do., 5. Sept. 2019 um 00:08 Uhr schrieb Alexey Potakhov
> >> > <alex@potahov.com>:
> >> >
> >> > > In some rare cases when IAMStreamConfig_GetStreamCaps returns
> >> > > an error avformat_open_input() crashes with access violation.
> >> >
> >> > Tabs are rejected by our repository, please remove them and resend.
> >> >
> >> > Carl Eugen
> >> > _______________________________________________
> >> > ffmpeg-devel mailing list
> >> > ffmpeg-devel@ffmpeg.org
> >> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >> >
> >> > To unsubscribe, visit link above, or email
> >> > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> >> _______________________________________________
> >> ffmpeg-devel mailing list
> >> ffmpeg-devel@ffmpeg.org
> >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >>
> >> To unsubscribe, visit link above, or email
> >> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel@ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
> > To unsubscribe, visit link above, or email
> > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Carl Eugen Hoyos Feb. 26, 2020, 11:31 a.m. UTC | #4
Am Mi., 26. Feb. 2020 um 06:57 Uhr schrieb Roger Pack <rogerdpack2@gmail.com>:
>
> Original bigger patch is enough for now.  Please merge, thanks!

What happened to your git account?

Carl Eugen
Roger Pack March 31, 2020, 4:43 a.m. UTC | #5
On Wed, Feb 26, 2020 at 4:36 AM Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote:
>
> Am Mi., 26. Feb. 2020 um 06:57 Uhr schrieb Roger Pack <rogerdpack2@gmail.com>:
> >
> > Original bigger patch is enough for now.  Please merge, thanks!
>
> What happened to your git account?

I never made one.  Do we still send in private keys for it?  If so to whom?
Thanks.

>
> Carl Eugen
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Carl Eugen Hoyos March 31, 2020, 9:16 a.m. UTC | #6
Am Di., 31. März 2020 um 06:50 Uhr schrieb Roger Pack <rogerdpack2@gmail.com>:
>
> On Wed, Feb 26, 2020 at 4:36 AM Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote:
> >
> > Am Mi., 26. Feb. 2020 um 06:57 Uhr schrieb Roger Pack <rogerdpack2@gmail.com>:
> > >
> > > Original bigger patch is enough for now.  Please merge, thanks!
> >
> > What happened to your git account?
>
> I never made one.

This looked as if you had one:
http://git.videolan.org/?p=ffmpeg.git;a=search;s=pack;st=committer

> Do we still send in private keys for it?  If so to whom?

Public key to Michael or send a git-format made patch as attachment.

Carl Eugen
diff mbox

Patch

diff --git a/libavdevice/dshow.c b/libavdevice/dshow.c
index d7f5bd7069..d1ae63b310 100644
--- a/libavdevice/dshow.c
+++ b/libavdevice/dshow.c
@@ -340,8 +340,10 @@  dshow_cycle_formats(AVFormatContext *avctx, enum dshowDeviceType devtype,
 
     for (i = 0; i < n && !format_set; i++) {
         r = IAMStreamConfig_GetStreamCaps(config, i, &type, (void *) caps);
-        if (r != S_OK)
-            goto next;
+        if (r != S_OK) {
+            type = NULL;
+            goto next;
+        }
 #if DSHOWDEBUG
         ff_print_AM_MEDIA_TYPE(type);
 #endif
@@ -450,9 +452,11 @@  dshow_cycle_formats(AVFormatContext *avctx, enum dshowDeviceType devtype,
             goto next;
         format_set = 1;
 next:
-        if (type->pbFormat)
-            CoTaskMemFree(type->pbFormat);
-        CoTaskMemFree(type);
+        if (type) {
+            if (type->pbFormat)
+                CoTaskMemFree(type->pbFormat);
+            CoTaskMemFree(type);
+        }
     }
 end:
     IAMStreamConfig_Release(config);