diff options
author | Michael Vogt <mvo@debian.org> | 2013-12-28 00:31:01 +0100 |
---|---|---|
committer | Michael Vogt <mvo@debian.org> | 2013-12-28 00:31:01 +0100 |
commit | 35ac30ee373c5ed84d7c2c5a701ac2d54963504d (patch) | |
tree | 59da7e2385b396052c4f53ac187d520c00d2790c /apt-pkg/tagfile.cc | |
parent | e5c2b7e8a5455e1dc6993ef9e151b3845fb53c60 (diff) | |
parent | c035b6552ba4bd1c6fba5fd8f8d829c2efbefe3c (diff) |
Merge branch 'debian/sid' into bugfix/bts731738-fancy-progess
Conflicts:
apt-pkg/install-progress.cc
Diffstat (limited to 'apt-pkg/tagfile.cc')
-rw-r--r-- | apt-pkg/tagfile.cc | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/apt-pkg/tagfile.cc b/apt-pkg/tagfile.cc index e0802e3d5..bef3c76ba 100644 --- a/apt-pkg/tagfile.cc +++ b/apt-pkg/tagfile.cc @@ -259,7 +259,12 @@ bool pkgTagSection::Scan(const char *Start,unsigned long MaxLength) TagCount = 0; while (TagCount+1 < sizeof(Indexes)/sizeof(Indexes[0]) && Stop < End) { - TrimRecord(true,End); + TrimRecord(true,End); + + // this can happen when TrimRecord trims away the entire Record + // (e.g. because it just contains comments) + if(Stop == End) + return true; // Start a new index and add it to the hash if (isspace(Stop[0]) == 0) @@ -273,7 +278,9 @@ bool pkgTagSection::Scan(const char *Start,unsigned long MaxLength) if (Stop == 0) return false; - for (; Stop+1 < End && Stop[1] == '\r'; Stop++); + for (; Stop+1 < End && Stop[1] == '\r'; Stop++) + /* nothing */ + ; // Double newline marks the end of the record if (Stop+1 < End && Stop[1] == '\n') |