avio: Add const qualifiers to ffio_read_indirect
authorBen Avison <bavison@riscosopen.org>
Wed, 7 Aug 2013 22:22:38 +0000 (23:22 +0100)
committerMartin Storsjö <martin@martin.st>
Thu, 8 Aug 2013 08:09:00 +0000 (11:09 +0300)
This provides at least some protection against potential accidental
corruption of AVIO buffer workspace.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/avio_internal.h
libavformat/aviobuf.c
libavformat/mpegts.c

index 4fa3adb..5493163 100644 (file)
@@ -52,7 +52,7 @@ int ffio_init_context(AVIOContext *s,
  *    will be a copy of buf
  * @return number of bytes read or AVERROR
  */
-int ffio_read_indirect(AVIOContext *s, unsigned char *buf, int size, unsigned char **data);
+int ffio_read_indirect(AVIOContext *s, unsigned char *buf, int size, const unsigned char **data);
 
 /**
  * Read size bytes from AVIOContext into buf.
index 07aa880..2354f47 100644 (file)
@@ -490,7 +490,7 @@ int avio_read(AVIOContext *s, unsigned char *buf, int size)
     return size1 - size;
 }
 
-int ffio_read_indirect(AVIOContext *s, unsigned char *buf, int size, unsigned char **data)
+int ffio_read_indirect(AVIOContext *s, unsigned char *buf, int size, const unsigned char **data)
 {
     if (s->buf_end - s->buf_ptr >= size && !s->write_flag) {
         *data = s->buf_ptr;
index eecf246..ba41f7f 100644 (file)
@@ -1757,7 +1757,7 @@ static int mpegts_resync(AVFormatContext *s)
 }
 
 /* return -1 if error or EOF. Return 0 if OK. */
-static int read_packet(AVFormatContext *s, uint8_t *buf, int raw_packet_size, uint8_t **data)
+static int read_packet(AVFormatContext *s, uint8_t *buf, int raw_packet_size, const uint8_t **data)
 {
     AVIOContext *pb = s->pb;
     int len;
@@ -1793,7 +1793,7 @@ static int handle_packets(MpegTSContext *ts, int nb_packets)
 {
     AVFormatContext *s = ts->stream;
     uint8_t packet[TS_PACKET_SIZE+FF_INPUT_BUFFER_PADDING_SIZE];
-    uint8_t *data;
+    const uint8_t *data;
     int packet_num, ret = 0;
 
     if (avio_tell(s->pb) != ts->last_pos) {
@@ -1930,7 +1930,7 @@ static int mpegts_read_header(AVFormatContext *s)
         int64_t pcrs[2], pcr_h;
         int packet_count[2];
         uint8_t packet[TS_PACKET_SIZE];
-        uint8_t *data;
+        const uint8_t *data;
 
         /* only read packets */
 
@@ -1992,7 +1992,7 @@ static int mpegts_raw_read_packet(AVFormatContext *s,
     int64_t pcr_h, next_pcr_h, pos;
     int pcr_l, next_pcr_l;
     uint8_t pcr_buf[12];
-    uint8_t *data;
+    const uint8_t *data;
 
     if (av_new_packet(pkt, TS_PACKET_SIZE) < 0)
         return AVERROR(ENOMEM);