[FFmpeg-cvslog] r9817 - trunk/libavformat/rmdec.c

diego subversion
Sat Jul 28 20:02:19 CEST 2007


Author: diego
Date: Sat Jul 28 20:02:19 2007
New Revision: 9817

Log:
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


Modified:
   trunk/libavformat/rmdec.c

Modified: trunk/libavformat/rmdec.c
==============================================================================
--- trunk/libavformat/rmdec.c	(original)
+++ trunk/libavformat/rmdec.c	Sat Jul 28 20:02:19 2007
@@ -25,29 +25,31 @@
 static void get_str(ByteIOContext *pb, char *buf, int buf_size)
 {
     int len, i;
-    char *q;
+    char *q, r;
 
     len = get_be16(pb);
     q = buf;
     for(i=0;i<len;i++) {
+        r = get_byte(pb);
         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)
 {
     int len, i;
-    char *q;
+    char *q, r;
 
     len = get_byte(pb);
     q = buf;
     for(i=0;i<len;i++) {
+        r = get_byte(pb);
         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,




More information about the ffmpeg-cvslog mailing list