From 6fcce4f995df3c6c44b16a810b772f529e9aa6bf Mon Sep 17 00:00:00 2001
From: Patrik Kullman <patrik@yes.nu>
Date: Thu, 12 Feb 2009 02:15:07 +0000
Subject: [PATCH] Change ffm_write_write_index to return int, and return if
 error occured. Patch by Patrik Kullman, patrik at yes dot nu

Originally committed as revision 17172 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavformat/avformat.h | 2 +-
 libavformat/ffmdec.c   | 6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index a1a9b601efe..bb03e4009ce 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1180,7 +1180,7 @@ int64_t av_gettime(void);
 /* ffm-specific for ffserver */
 #define FFM_PACKET_SIZE 4096
 int64_t ffm_read_write_index(int fd);
-void ffm_write_write_index(int fd, int64_t pos);
+int ffm_write_write_index(int fd, int64_t pos);
 void ffm_set_write_index(AVFormatContext *s, int64_t pos, int64_t file_size);
 
 /**
diff --git a/libavformat/ffmdec.c b/libavformat/ffmdec.c
index 9951d756eac..6f96c719ab2 100644
--- a/libavformat/ffmdec.c
+++ b/libavformat/ffmdec.c
@@ -34,7 +34,7 @@ int64_t ffm_read_write_index(int fd)
     return AV_RB64(buf);
 }
 
-void ffm_write_write_index(int fd, int64_t pos)
+int ffm_write_write_index(int fd, int64_t pos)
 {
     uint8_t buf[8];
     int i;
@@ -42,7 +42,9 @@ void ffm_write_write_index(int fd, int64_t pos)
     for(i=0;i<8;i++)
         buf[i] = (pos >> (56 - i * 8)) & 0xff;
     lseek(fd, 8, SEEK_SET);
-    write(fd, buf, 8);
+    if (write(fd, buf, 8) != 8)
+        return AVERROR(EIO);
+    return 8;
 }
 
 void ffm_set_write_index(AVFormatContext *s, int64_t pos, int64_t file_size)
-- 
GitLab