diff options
author | David Kalnischkies <david@kalnischkies.de> | 2021-03-17 19:31:55 +0100 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2021-04-25 12:02:19 +0200 |
commit | d7e3d28412c5269276d8d7cd72427ab88ee3e3d1 (patch) | |
tree | 9c231ab2cb2b6bfd0de8bdf01c360c5533b04e59 /apt-pkg | |
parent | 25e11a6b4bf11e5ffa364a0e2961ae89289f4611 (diff) |
Allow superfluous commas in build-dependency lines
This code can interact with handwritten files who can have unneeded
commas for writing easy. As dpkg allows it, we should do as well.
Reported-By: Arnaud Ferraris <arnaud.ferraris@gmail.com>
References: https://lists.debian.org/debian-devel/2021/03/msg00101.html
Diffstat (limited to 'apt-pkg')
-rw-r--r-- | apt-pkg/deb/debsrcrecords.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/apt-pkg/deb/debsrcrecords.cc b/apt-pkg/deb/debsrcrecords.cc index 0a1f91f22..89f3f1667 100644 --- a/apt-pkg/deb/debsrcrecords.cc +++ b/apt-pkg/deb/debsrcrecords.cc @@ -123,6 +123,14 @@ bool debSrcRecordParser::BuildDepends(std::vector<pkgSrcRecords::Parser::BuildDe while (1) { + // Strip off leading spaces (is done by ParseDepends, too) and + // superfluous commas (encountered in user-written dsc/control files) + do { + for (;Start != Stop && isspace_ascii(*Start) != 0; ++Start); + } while (*Start == ',' && ++Start != Stop); + if (Start == Stop) + break; + BuildDepRec rec; Start = debListParser::ParseDepends(Start, Stop, rec.Package, rec.Version, rec.Op, true, StripMultiArch, true); @@ -141,9 +149,6 @@ bool debSrcRecordParser::BuildDepends(std::vector<pkgSrcRecords::Parser::BuildDe } else { BuildDeps.emplace_back(std::move(rec)); } - - if (Start == Stop) - break; } } |