summaryrefslogtreecommitdiff
path: root/apt-pkg/contrib/strutl.cc
diff options
context:
space:
mode:
authorDavid Kalnischkies <kalnischkies@gmail.com>2010-06-09 18:23:23 +0200
committerDavid Kalnischkies <kalnischkies@gmail.com>2010-06-09 18:23:23 +0200
commit24d7b6267ef3e475a153d4e2c4bcb30e1d14e671 (patch)
tree5f942836626e8777dfa2408ca790d3d65521248e /apt-pkg/contrib/strutl.cc
parenta319c4eeae62511d1cb58986742491d3e224bf20 (diff)
be sure that the RFC1123StrToTime method is run in a LANG=C environment
Diffstat (limited to 'apt-pkg/contrib/strutl.cc')
-rw-r--r--apt-pkg/contrib/strutl.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc
index 160450366..ace74cb37 100644
--- a/apt-pkg/contrib/strutl.cc
+++ b/apt-pkg/contrib/strutl.cc
@@ -861,12 +861,16 @@ static time_t timegm(struct tm *t)
bool RFC1123StrToTime(const char* const str,time_t &time)
{
struct tm Tm;
+ setlocale (LC_ALL,"C");
+ bool const invalid =
// Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123
- if (strptime(str, "%a, %d %b %Y %H:%M:%S %Z", &Tm) == NULL &&
+ (strptime(str, "%a, %d %b %Y %H:%M:%S %Z", &Tm) == NULL &&
// Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
strptime(str, "%A, %d-%b-%y %H:%M:%S %Z", &Tm) == NULL &&
// Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format
- strptime(str, "%a %b %d %H:%M:%S %Y", &Tm) == NULL)
+ strptime(str, "%a %b %d %H:%M:%S %Y", &Tm) == NULL);
+ setlocale (LC_ALL,"");
+ if (invalid == true)
return false;
time = timegm(&Tm);