[SCM] libav/experimental: mxfdec: Validate parameters to strftime

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Aug 10 16:01:57 UTC 2014


The following commit has been merged in the experimental branch:
commit 8cafeb8bca5d079041739dbd72ccec0ead138eaf
Author: Martin Storsjö <martin at martin.st>
Date:   Sun Mar 9 22:44:10 2014 +0200

    mxfdec: Validate parameters to strftime
    
    The MSVCRT version of strftime calls the invalid parameter handler
    if the struct values in struct tm are invalid. In case no invalid
    parameter handler is set for the process, the process is aborted.
    
    This fixes fate failures on MSVC builds since 570af382.
    
    Based on a patch by Hendrik Leppkes.
    
    Signed-off-by: Martin Storsjö <martin at martin.st>

diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
index 27f996f..d6e2155 100644
--- a/libavformat/mxfdec.c
+++ b/libavformat/mxfdec.c
@@ -1669,6 +1669,15 @@ static int mxf_timestamp_to_str(uint64_t timestamp, char **str)
     time.tm_min  = (timestamp >> 16 & 0xFF);
     time.tm_sec  = (timestamp >> 8  & 0xFF);
 
+    /* msvcrt versions of strftime calls the invalid parameter handler
+     * (aborting the process if one isn't set) if the parameters are out
+     * of range. */
+    time.tm_mon  = av_clip(time.tm_mon,  0, 11);
+    time.tm_mday = av_clip(time.tm_mday, 1, 31);
+    time.tm_hour = av_clip(time.tm_hour, 0, 23);
+    time.tm_min  = av_clip(time.tm_min,  0, 59);
+    time.tm_sec  = av_clip(time.tm_sec,  0, 59);
+
     *str = av_mallocz(32);
     if (!*str)
         return AVERROR(ENOMEM);

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list