From 8224451ee4046498d09c47580906e3843efab207 Mon Sep 17 00:00:00 2001 From: "mflodman@webrtc.org" Date: Wed, 18 Jan 2012 09:36:46 +0000 Subject: [PATCH] Add check for ftell return value. BUG=C-10170 Review URL: https://webrtc-codereview.appspot.com/355001 git-svn-id: http://webrtc.googlecode.com/svn/trunk@1450 4adac7df-926f-26a2-2b94-8c16560cd09d --- src/video_engine/vie_file_image.cc | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/video_engine/vie_file_image.cc b/src/video_engine/vie_file_image.cc index b8a7246684..74267edac3 100644 --- a/src/video_engine/vie_file_image.cc +++ b/src/video_engine/vie_file_image.cc @@ -35,9 +35,29 @@ int ViEFileImage::ConvertJPEGToVideoFrame(int engine_id, "%s could not open file %s", __FUNCTION__, file_nameUTF8); return -1; } - fseek(image_file, 0, SEEK_END); - image_buffer._size = ftell(image_file); - fseek(image_file, 0, SEEK_SET); + if (fseek(image_file, 0, SEEK_END) != 0) { + fclose(image_file); + WEBRTC_TRACE(kTraceError, kTraceVideo, engine_id, + "ConvertJPEGToVideoFrame fseek SEEK_END error for file %s", + file_nameUTF8); + return -1; + } + int buffer_size = ftell(image_file); + if (buffer_size == -1) { + fclose(image_file); + WEBRTC_TRACE(kTraceError, kTraceVideo, engine_id, + "ConvertJPEGToVideoFrame could tell file size for file %s", + file_nameUTF8); + return -1; + } + image_buffer._size = buffer_size; + if (fseek(image_file, 0, SEEK_SET) != 0) { + fclose(image_file); + WEBRTC_TRACE(kTraceError, kTraceVideo, engine_id, + "ConvertJPEGToVideoFrame fseek SEEK_SET error for file %s", + file_nameUTF8); + return -1; + } image_buffer._buffer = new WebRtc_UWord8[ image_buffer._size + 1]; if (image_buffer._size != fread(image_buffer._buffer, sizeof(WebRtc_UWord8), image_buffer._size, image_file)) {