clendar: + null check
authorChunEon Park <hermet@hermet.pe.kr>
Mon, 15 Jun 2015 04:39:14 +0000 (13:39 +0900)
committerChunEon Park <hermet@hermet.pe.kr>
Mon, 15 Jun 2015 04:39:14 +0000 (13:39 +0900)
gmtime can return NULL vaule.
if so strftime will cause crash.

this patch just prevent that potential situation.

src/lib/elm_calendar.c

index 0fc78f3..90a6f17 100644 (file)
@@ -1004,17 +1004,23 @@ _elm_calendar_evas_object_smart_add(Eo *obj, Elm_Calendar_Data *priv)
         /* FIXME: I'm not aware of a known max, so if it fails,
          * just make it larger. :| */
         char buf[20];
+        struct tm *info;
+
         /* I don't know of a better way of doing it */
-        if (strftime(buf, sizeof(buf), "%a", gmtime(&weekday)))
+        info = gmtime(&weekday);
+        if (info)
           {
-             priv->weekdays[i] = eina_stringshare_add(buf);
-          }
-        else
-          {
-             /* If we failed getting day, get a default value */
-             priv->weekdays[i] = _days_abbrev[i];
-             WRN("Failed getting weekday name for '%s' from locale.",
-                 _days_abbrev[i]);
+             if (strftime(buf, sizeof(buf), "%a", info))
+               {
+                  priv->weekdays[i] = eina_stringshare_add(buf);
+               }
+             else
+               {
+                  /* If we failed getting day, get a default value */
+                  priv->weekdays[i] = _days_abbrev[i];
+                  WRN("Failed getting weekday name for '%s' from locale.",
+                      _days_abbrev[i]);
+               }
           }
         weekday += 86400; /* Advance by a day */
      }