summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/tagfile.cc4
-rw-r--r--test/libapt/tagfile_test.cc5
2 files changed, 7 insertions, 2 deletions
diff --git a/apt-pkg/tagfile.cc b/apt-pkg/tagfile.cc
index 668cfc3a4..a0b64f9ca 100644
--- a/apt-pkg/tagfile.cc
+++ b/apt-pkg/tagfile.cc
@@ -382,7 +382,9 @@ bool pkgTagSection::Scan(const char *Start,unsigned long MaxLength, bool const R
lastTagHash = AlphaHash(Stop, EndTag - Stop);
// find the beginning of the value
Stop = Colon + 1;
- for (; isspace_ascii(*Stop) != 0; ++Stop);
+ for (; isspace_ascii(*Stop) != 0; ++Stop)
+ if (*Stop == '\n' && Stop[1] != ' ')
+ break;
if (Stop >= End)
return false;
lastTagData.StartValue = Stop - Section;
diff --git a/test/libapt/tagfile_test.cc b/test/libapt/tagfile_test.cc
index d7030f41a..064e91b79 100644
--- a/test/libapt/tagfile_test.cc
+++ b/test/libapt/tagfile_test.cc
@@ -186,6 +186,7 @@ TEST(TagFileTest, SpacesEverywhere)
"Package: pkgA\n"
"Package: pkgB\n"
"NoSpaces:yes\n"
+ "NoValue:\n"
"TagSpaces\t :yes\n"
"ValueSpaces: \tyes\n"
"BothSpaces \t:\t yes\n"
@@ -200,6 +201,7 @@ TEST(TagFileTest, SpacesEverywhere)
EXPECT_TRUE(section.Scan(content.c_str(), content.size()));
EXPECT_TRUE(section.Exists("Package"));
EXPECT_TRUE(section.Exists("NoSpaces"));
+ EXPECT_TRUE(section.Exists("NoValue"));
EXPECT_TRUE(section.Exists("TagSpaces"));
EXPECT_TRUE(section.Exists("ValueSpaces"));
EXPECT_TRUE(section.Exists("BothSpaces"));
@@ -209,6 +211,7 @@ TEST(TagFileTest, SpacesEverywhere)
EXPECT_TRUE(section.Exists("Multi-Colon"));
EXPECT_EQ("pkgC", section.FindS("Package"));
EXPECT_EQ("yes", section.FindS("NoSpaces"));
+ EXPECT_EQ("", section.FindS("NoValue"));
EXPECT_EQ("yes", section.FindS("TagSpaces"));
EXPECT_EQ("yes", section.FindS("ValueSpaces"));
EXPECT_EQ("yes", section.FindS("BothSpaces"));
@@ -217,5 +220,5 @@ TEST(TagFileTest, SpacesEverywhere)
EXPECT_EQ("yes", section.FindS("Naming Spaces"));
EXPECT_EQ(":yes:", section.FindS("Multi-Colon"));
// overridden values are still present, but not really accessible
- EXPECT_EQ(11, section.Count());
+ EXPECT_EQ(12, section.Count());
}