[FFmpeg-devel] [PATCH 1/4] lavu/opt: check for NULL before parsing

Michael Niedermayer michaelni at gmx.at
Mon Nov 10 13:08:34 CET 2014


On Mon, Nov 10, 2014 at 06:22:07AM +0100, Lukasz Marek wrote:
> On 10.11.2014 03:21, Michael Niedermayer wrote:
> >On Sun, Nov 09, 2014 at 11:22:46PM +0100, Lukasz Marek wrote:
> >>set_string_binary crashes with called with val=NULL
> >>
> >>Signed-off-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
> >>---
> >>  libavutil/opt.c | 6 +++++-
> >>  1 file changed, 5 insertions(+), 1 deletion(-)
> >>
> >>diff --git a/libavutil/opt.c b/libavutil/opt.c
> >>index fca5354..bc62044 100644
> >>--- a/libavutil/opt.c
> >>+++ b/libavutil/opt.c
> >>@@ -126,11 +126,15 @@ static int set_string_binary(void *obj, const AVOption *o, const char *val, uint
> >>  {
> >>      int *lendst = (int *)(dst + 1);
> >>      uint8_t *bin, *ptr;
> >>-    int len = strlen(val);
> >>+    int len;
> >>
> >>      av_freep(dst);
> >>      *lendst = 0;
> >>
> >>+    if (!val)
> >>+        return AVERROR(EINVAL);
> >
> >this deallocates dest and then returns failure
> >shouldnt it either not fail or not change the state of dst ?
> 
> Yes, it is inconsistent.  I changed to return 0.
> Also, I added check for length 0 to avoid malloc returned some
> pointer for 0 bytes block.
> 

>  opt.c |    5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 8cb5253a3e91283bd427ebe3a0124c0f890d0535  0001-lavu-opt-check-for-NULL-before-parsing.patch
> From e67c9094e699997cb01e2ec2dcc0a7da19ed9c03 Mon Sep 17 00:00:00 2001
> From: Lukasz Marek <lukasz.m.luki2 at gmail.com>
> Date: Sun, 9 Nov 2014 23:15:58 +0100
> Subject: [PATCH 1/4] lavu/opt: check for NULL before parsing

LGTM

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Avoid a single point of failure, be that a person or equipment.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20141110/1ac9aa01/attachment.asc>


More information about the ffmpeg-devel mailing list