diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2022-09-14 02:21:41 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2022-09-14 15:03:59 +0200 |
commit | 62af385b917f2474498abeabd6057e6c60e2b9a9 (patch) | |
tree | ccaec50d216b4071c0b4952289eeba327ca65907 /libavutil/dict.c | |
parent | 130483449ebec8fd8d9080d564f7ec5d46e18d39 (diff) | |
download | ffmpeg-62af385b917f2474498abeabd6057e6c60e2b9a9.tar.gz |
avformat/dump: Avoid unnecessary implicit calculation of strlen
av_strlcpy() returns the length of the src string to enable
the caller to check for truncation. It is currently used in
the following way in dump_metadata(): Every metadata value
is searched for \b, \n, \v, \f, \r and then the data up to
the first of these characters found is copied to a small
temporary buffer via av_strlcpy() (but of course not more
than fits into said buffer) and then printed; all characters up
to the character found earlier are then treated as consumed.
But this is bad performance-wise if the while string is big
and contains many of these characters, because av_strlcpy()
will unnecessarily calculate the length of the whole remaining string.
(dump_metadata() actually ignored the return value of av_strlcpy().)
Fix this by not copying the data to a temporary buffer at all.
Instead just use %.*s to bound the number of characters output.
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavutil/dict.c')
0 files changed, 0 insertions, 0 deletions