$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r53485 - trunk/boost/date_time
From: andrey.semashev_at_[hidden]
Date: 2009-05-31 08:03:42
Author: andysem
Date: 2009-05-31 08:03:41 EDT (Sun, 31 May 2009)
New Revision: 53485
URL: http://svn.boost.org/trac/boost/changeset/53485
Log:
Fixed a possible reading overflow in the var_string_to_int function.
Mentioned in ticket #1861.
-This line, and those below, will be ignored--
M    format_date_parser.hpp
Text files modified: 
   trunk/boost/date_time/format_date_parser.hpp |    10 +++++-----                              
   1 files changed, 5 insertions(+), 5 deletions(-)
Modified: trunk/boost/date_time/format_date_parser.hpp
==============================================================================
--- trunk/boost/date_time/format_date_parser.hpp	(original)
+++ trunk/boost/date_time/format_date_parser.hpp	2009-05-31 08:03:41 EDT (Sun, 31 May 2009)
@@ -100,19 +100,19 @@
 inline
 int_type
 var_string_to_int(std::istreambuf_iterator<charT>& itr,
-                  std::istreambuf_iterator<charT>& /* stream_end */,
+                  const std::istreambuf_iterator<charT>& stream_end,
                   unsigned int max_length)
 {
   typedef std::basic_string<charT>  string_type;
   unsigned int j = 0;
   string_type s;
-  while ((j < max_length) && std::isdigit(*itr)) {
+  while (itr != stream_end && (j < max_length) && std::isdigit(*itr)) {
     s += (*itr);
-    itr++;
-    j++;
+    ++itr;
+    ++j;
   }
   int_type i = -1;
-  if(s.length() != 0) {
+  if(!s.empty()) {
     i = boost::lexical_cast<int_type>(s);
   }
   return i;