Adblock: handle files with dates in future

This commit is contained in:
Paweł Forysiuk 2012-09-06 00:00:46 +02:00 committed by Christian Dywan
parent 82242a8c2e
commit 419d4c1ae5

View file

@ -1544,7 +1544,7 @@ adblock_file_is_up_to_date (gchar* path)
/* Check a chunk of header for update info */ /* Check a chunk of header for update info */
if ((file = g_fopen (path, "r"))) if ((file = g_fopen (path, "r")))
{ {
guint days_to_expire = 0; gint days_to_expire = 0;
gchar* timestamp = NULL; gchar* timestamp = NULL;
guint i; guint i;
gboolean found_meta = FALSE; gboolean found_meta = FALSE;
@ -1591,7 +1591,7 @@ adblock_file_is_up_to_date (gchar* path)
if (days_to_expire && timestamp != NULL) if (days_to_expire && timestamp != NULL)
{ {
guint days_elapsed = 0; gint days_elapsed = 0;
GDate* current = g_date_new (); GDate* current = g_date_new ();
GDate* mod_date = g_date_new (); GDate* mod_date = g_date_new ();
@ -1624,6 +1624,14 @@ adblock_file_is_up_to_date (gchar* path)
g_date_free (mod_date); g_date_free (mod_date);
g_free (timestamp); g_free (timestamp);
/* File from the future? Assume up to date, not to loop */
if (days_elapsed < 0)
{
g_print ("Adblock: file %s appears to be from the future,"
"check your system clock!\n", path);
return TRUE;
}
if (days_elapsed < days_to_expire) if (days_elapsed < days_to_expire)
return TRUE; return TRUE;
else else