On Wed, 4 Sep 2013, Anton Khirnov wrote:

---
libavformat/matroskadec.c |    8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 9b116b0..b0f8797 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -851,7 +851,13 @@ static int ebml_parse_nest(MatroskaDemuxContext *matroska, 
EbmlSyntax *syntax,
            break;
        case EBML_STR:
        case EBML_UTF8:
-            *(char    **)((char *)data+syntax[i].data_offset) = 
av_strdup(syntax[i].def.s);
+            // the default may be NULL
+            if (syntax[i].def.s) {
+                uint8_t **dst = (uint8_t**)((uint8_t*)data + 
syntax[i].data_offset);
+                *dst = av_strdup(syntax[i].def.s);
+                if (!*dst)
+                    return AVERROR(ENOMEM);
+            }
            break;
        }

--
1.7.10.4

LGTM

// Martin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to