lavf: Check the return value of strftime
[ffmpeg.git] / libavformat / wtv.c
index fa864e840afa37a5ff6feca56822d88f0f2fba52..90984cfda0b2a673f0c2fdf8f980174cb6b426c3 100644 (file)
@@ -429,9 +429,10 @@ static void filetime_to_iso8601(char *buf, int buf_size, int64_t value)
 {
     time_t t = (value / 10000000LL) - 11644473600LL;
     struct tm *tm = gmtime(&t);
 {
     time_t t = (value / 10000000LL) - 11644473600LL;
     struct tm *tm = gmtime(&t);
-    if (tm)
-        strftime(buf, buf_size, "%Y-%m-%d %H:%M:%S", tm);
-    else
+    if (tm) {
+        if (!strftime(buf, buf_size, "%Y-%m-%d %H:%M:%S", tm))
+            buf[0] = '\0';
+    } else
         buf[0] = '\0';
 }
 
         buf[0] = '\0';
 }
 
@@ -442,9 +443,10 @@ static void crazytime_to_iso8601(char *buf, int buf_size, int64_t value)
 {
     time_t t = (value / 10000000LL) - 719162LL*86400LL;
     struct tm *tm = gmtime(&t);
 {
     time_t t = (value / 10000000LL) - 719162LL*86400LL;
     struct tm *tm = gmtime(&t);
-    if (tm)
-        strftime(buf, buf_size, "%Y-%m-%d %H:%M:%S", tm);
-    else
+    if (tm) {
+        if (!strftime(buf, buf_size, "%Y-%m-%d %H:%M:%S", tm))
+            buf[0] = '\0';
+    } else
         buf[0] = '\0';
 }
 
         buf[0] = '\0';
 }
 
@@ -455,9 +457,10 @@ static void oledate_to_iso8601(char *buf, int buf_size, int64_t value)
 {
     time_t t = 631112400LL + 86400*av_int2double(value);
     struct tm *tm = gmtime(&t);
 {
     time_t t = 631112400LL + 86400*av_int2double(value);
     struct tm *tm = gmtime(&t);
-    if (tm)
-        strftime(buf, buf_size, "%Y-%m-%d %H:%M:%S", tm);
-    else
+    if (tm) {
+        if (!strftime(buf, buf_size, "%Y-%m-%d %H:%M:%S", tm))
+            buf[0] = '\0';
+    } else
         buf[0] = '\0';
 }
 
         buf[0] = '\0';
 }