Signed-off-by: Andreas Rheinhardt <[email protected]>
---
libavformat/matroskadec.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 636ed23f0d..b9c6047f56 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -1114,28 +1114,29 @@ static int ebml_parse_nest(MatroskaDemuxContext
*matroska, EbmlSyntax *syntax,
int res;
if (data) {
- for (int i = 0; syntax[i].id; i++)
+ for (int i = 0; syntax[i].id; i++) {
+ void *dst = (char *)data + syntax[i].data_offset;
switch (syntax[i].type) {
case EBML_UINT:
- *(uint64_t *) ((char *) data + syntax[i].data_offset) =
syntax[i].def.u;
+ *(uint64_t *)dst = syntax[i].def.u;
break;
case EBML_SINT:
- *(int64_t *) ((char *) data + syntax[i].data_offset) =
syntax[i].def.i;
+ *(int64_t *) dst = syntax[i].def.i;
break;
case EBML_FLOAT:
- *(double *) ((char *) data + syntax[i].data_offset) =
syntax[i].def.f;
+ *(double *) dst = syntax[i].def.f;
break;
case EBML_STR:
case EBML_UTF8:
// 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)
+ *(char**)dst = av_strdup(syntax[i].def.s);
+ if (!*(char**)dst)
return AVERROR(ENOMEM);
}
break;
}
+ }
if (!matroska->levels[matroska->num_levels - 1].length) {
matroska->num_levels--;
--
2.27.0
_______________________________________________
ffmpeg-devel mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".