[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#179531: [patch] reads past buffer in pkgTagSection::Scan()



Package: apt
Version: 0.5.4
Tags: patch

The attached patch fixes two reads past buffer (by one byte) in
pkgTagSection::Scan(). They are caused simply by having the repeat
conditions in for loops in a wrong order.

	Sami


diff -NurB apt-0.5.4-orig/apt-pkg/tagfile.cc apt-0.5.4/apt-pkg/tagfile.cc
--- apt-0.5.4-orig/apt-pkg/tagfile.cc	2003-02-02 03:18:06.000000000 +0200
+++ apt-0.5.4/apt-pkg/tagfile.cc	2003-02-02 03:19:49.000000000 +0200
@@ -211,13 +211,13 @@
       if (Stop == 0)
 	 return false;
       
-      for (; Stop[1] == '\r' && Stop+1 < End; Stop++);
+      for (; Stop+1 < End && Stop[1] == '\r'; Stop++);
 
       // Double newline marks the end of the record
       if (Stop+1 < End && Stop[1] == '\n')
       {
 	 Indexes[TagCount] = Stop - Section;
-	 for (; (Stop[0] == '\n' || Stop[0] == '\r') && Stop < End; Stop++);
+	 for (; Stop < End && (Stop[0] == '\n' || Stop[0] == '\r'); Stop++);
 	 return true;
       }
       



Reply to: