[Aptitude-svn-commit] r3498 - in branches/aptitude-0.3/aptitude: . src/vscreen

Daniel Burrows dburrows@costa.debian.org
Tue, 28 Jun 2005 01:06:54 +0000


Author: dburrows
Date: Tue Jun 28 01:06:51 2005
New Revision: 3498

Modified:
   branches/aptitude-0.3/aptitude/ChangeLog
   branches/aptitude-0.3/aptitude/src/vscreen/fragment.cc
Log:
Don't segfault in clipbox::layout.

Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog	(original)
+++ branches/aptitude-0.3/aptitude/ChangeLog	Tue Jun 28 01:06:51 2005
@@ -1,5 +1,10 @@
 2005-06-27  Daniel Burrows  <dburrows@debian.org>
 
+	* src/vscreen/fragment.cc:
+
+	  Fix a segfault in clipbox::layout due to an insufficiently
+	  bounded loop.
+
 	* src/vscreen/testvscreen.cc:
 
 	  Add some actual wide characters to test the formatting code.

Modified: branches/aptitude-0.3/aptitude/src/vscreen/fragment.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/vscreen/fragment.cc	(original)
+++ branches/aptitude-0.3/aptitude/src/vscreen/fragment.cc	Tue Jun 28 01:06:51 2005
@@ -827,7 +827,7 @@
 	size_t chars=0;
 	int width;
 
-	while(width<(signed) firstw)
+	while(width<(signed) firstw && chars<i->size())
 	  {
 	    width+=wcwidth((*i)[chars].ch);
 	    ++chars;