[FFmpeg-cvslog] tools/trasher: Check fseek returns

Michael Niedermayer git at videolan.org
Sun Feb 22 17:49:56 CET 2015


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sun Feb 22 16:49:56 2015 +0100| [ca86e91dd660ae9abc4f6eace620061ac695f847] | committer: Michael Niedermayer

tools/trasher: Check fseek returns

Fixes CID733726

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ca86e91dd660ae9abc4f6eace620061ac695f847
---

 tools/trasher.c |   18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/tools/trasher.c b/tools/trasher.c
index aaa09f4..0b89cfe 100644
--- a/tools/trasher.c
+++ b/tools/trasher.c
@@ -30,6 +30,15 @@ static uint32_t ran(void)
     return state = state * 1664525 + 1013904223;
 }
 
+static void checked_seek(FILE *stream, int64_t offset, int whence)
+{
+    offset = fseek(stream, offset, whence);
+    if (offset < 0) {
+        fprintf(stderr, "seek failed\n");
+        exit(1);
+    }
+}
+
 int main(int argc, char **argv)
 {
     FILE *f;
@@ -49,17 +58,14 @@ int main(int argc, char **argv)
     maxburst = atoi(argv[3]);
     state    = atoi(argv[4]);
 
-    fseek(f, 0, SEEK_END);
+    checked_seek(f, 0, SEEK_END);
     length = ftell(f);
-    fseek(f, 0, SEEK_SET);
+    checked_seek(f, 0, SEEK_SET);
 
     while (count--) {
         int burst = 1 + ran() * (uint64_t) (abs(maxburst) - 1) / UINT32_MAX;
         int pos   = ran() * (uint64_t) length / UINT32_MAX;
-        if (fseek(f, pos, SEEK_SET) < 0) {
-            fprintf(stderr, "seek failed\n");
-            return 1;
-        }
+        checked_seek(f, pos, SEEK_SET);
 
         if (maxburst < 0)
             burst = -maxburst;



More information about the ffmpeg-cvslog mailing list