Commit 28263f5f authored by Ronald S. Bultje's avatar Ronald S. Bultje Committed by Diego Biurrun

Fix get_str/get_str8() to also work if the target string is not long enough to

fit all data from the container string, and allow NULL as a string also to
simply skip the string altogether.
patch by Ronald S. Bultje, rsbultje gmail com

Originally committed as revision 9817 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent bd7c6fd5
...@@ -25,29 +25,31 @@ ...@@ -25,29 +25,31 @@
static void get_str(ByteIOContext *pb, char *buf, int buf_size) static void get_str(ByteIOContext *pb, char *buf, int buf_size)
{ {
int len, i; int len, i;
char *q; char *q, r;
len = get_be16(pb); len = get_be16(pb);
q = buf; q = buf;
for(i=0;i<len;i++) { for(i=0;i<len;i++) {
r = get_byte(pb);
if (i < buf_size - 1) if (i < buf_size - 1)
*q++ = get_byte(pb); *q++ = r;
} }
*q = '\0'; if (buf_size > 0) *q = '\0';
} }
static void get_str8(ByteIOContext *pb, char *buf, int buf_size) static void get_str8(ByteIOContext *pb, char *buf, int buf_size)
{ {
int len, i; int len, i;
char *q; char *q, r;
len = get_byte(pb); len = get_byte(pb);
q = buf; q = buf;
for(i=0;i<len;i++) { for(i=0;i<len;i++) {
r = get_byte(pb);
if (i < buf_size - 1) if (i < buf_size - 1)
*q++ = get_byte(pb); *q++ = r;
} }
*q = '\0'; if (buf_size > 0) *q = '\0';
} }
static int rm_read_audio_stream_info(AVFormatContext *s, AVStream *st, static int rm_read_audio_stream_info(AVFormatContext *s, AVStream *st,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment