summaryrefslogtreecommitdiff
path: root/apt-pkg
Commit message (Collapse)AuthorAgeFilesLines
* fileutl: Merge Popen variantsJulian Andres Klode2019-02-262-13/+1
|
* acquire-item: Remove deprecated members and functionsJulian Andres Klode2019-02-262-50/+3
|
* orderlist: Remove deprecated VisitNode() variantJulian Andres Klode2019-02-261-1/+0
|
* dpkgpm: Remove deprecated pkgDPkgPM::SendV2Pkgs()Julian Andres Klode2019-02-262-5/+0
|
* fileutl: Remove deprecated functions such as gzFd()Julian Andres Klode2019-02-262-28/+0
|
* strutl: Remove deprecated functionsJulian Andres Klode2019-02-262-57/+0
|
* edsp: Remove deprecated functionsJulian Andres Klode2019-02-262-347/+2
|
* sptr: Remove deprecated smart pointer classesJulian Andres Klode2019-02-262-75/+0
| | | | Please use the standard C++ variants instead.
* sourceslist: Remove deprecated AddVolatileFiles() variantJulian Andres Klode2019-02-262-18/+0
|
* netrc: Remove deprecated function maybe_add_auth()Julian Andres Klode2019-02-262-11/+0
|
* depcache: Remove deprecated functionsJulian Andres Klode2019-02-262-19/+0
|
* packagemanager: Remove deprecated functionsJulian Andres Klode2019-02-264-47/+0
|
* pkgcachegen: Remove deprecated functionsJulian Andres Klode2019-02-262-9/+0
|
* indexcopy: Remove deprecated SigVerify::RunGPGV()Julian Andres Klode2019-02-262-15/+0
|
* hashes: Remove deprecated functionsJulian Andres Klode2019-02-262-58/+6
| | | | | | This keeps the members in the class, but makes them private. We want to migrate to libgcrypt eventually, since we already use libgcrypt through gpgv anyway.
* metaindex: Remove deprecated checkSum::Hash (replaced by Hashes)Julian Andres Klode2019-02-262-7/+0
|
* algorithms: Remove deprecated ProblemResolver::InstallProtect()Julian Andres Klode2019-02-262-28/+0
|
* acquire: Remove deprecated pkgAcquire::Setup() functionJulian Andres Klode2019-02-262-33/+0
|
* acquire: Fold pkgAcquireStatus2 into pkgAcquireStatusJulian Andres Klode2019-02-262-22/+3
| | | | Clean up the code, make it neat, lalala
* tagfile: Remove deprecated pkgUserTagSection and TFRewriteJulian Andres Klode2019-02-262-162/+2
|
* indexfile: Remove deprecated translation functionsJulian Andres Klode2019-02-262-35/+0
|
* clean: Fold pkgArchiveCleaner2 into pkgArchiveCleanerJulian Andres Klode2019-02-262-30/+5
|
* pkgSrcRecords::Parser: Fold Files2() into Files()Julian Andres Klode2019-02-265-79/+5
| | | | This is possible now with the API break. Cleaner code, woohoo.
* pkgrecords: Renive deprecated functionsJulian Andres Klode2019-02-261-4/+0
|
* cachefile: Remove deprecated functionsJulian Andres Klode2019-02-261-2/+0
|
* upgrade: Remove deprecated functionsJulian Andres Klode2019-02-262-25/+1
|
* cacheiterators: Cleanup deprecated codeJulian Andres Klode2019-02-262-49/+1
|
* pkgcache: Remove deprecated bitsJulian Andres Klode2019-02-263-25/+0
|
* Bump SONAMEs in preparation for ABI breaksJulian Andres Klode2019-02-261-2/+2
|
* Fix various typos in the documentationJakub Wilk2019-02-101-1/+1
|
* Use std::to_string() for HashStringList::FileSize() getterJulian Andres Klode2019-02-041-3/+1
| | | | | | | | This slightly improves performance, as std::to_string() (as in gcc's libstdc++) avoids a heap allocation. This is surprisingly performance critical code, so we might want to improve things further in 1.9 by manually calculating the string - that would also get rid of issues with locales changing string formatting, if any.
* Detect function multiversioning and sse4.2/crc32, enables i386Julian Andres Klode2019-02-041-2/+6
| | | | | This fixes the build on kfreebsd-amd64, and due to the detection of sse4.2, should also enable the sse4.2 on i386.
* gpgv: Use buffered writes for splitting clearsigned filesJulian Andres Klode2019-02-043-2/+13
| | | | | | This is safe here, as the code ensures that the file is flushed before it is being used. The next series should probably make GetTempFile() buffer writes by default.
* Merge branch 'pu/dead-pin' into 'master'Julian Andres Klode2019-02-046-7/+83
|\ | | | | | | | | A pin of -32768 overrides any other, disables repo See merge request apt-team/apt!40
| * Add a Packages-Require-Authorization Release file fieldJulian Andres Klode2019-02-016-4/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new field allows a repository to declare that access to packages requires authorization. The current implementation will set the pin to -32768 if no authorization has been provided in the auth.conf(.d) files. This implementation is suboptimal in two aspects: (1) A repository should behave more like NotSource repositories (2) We only have the host name for the repository, we cannot use paths yet. - We can fix those after an ABI break. The code also adds a check to acquire-item.cc to not use the specified repository as a download source, mimicking NotSource.
| * Introduce experimental 'never' pinning for sourcesJulian Andres Klode2019-02-011-3/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows disabling a repository by pinning it to 'never', which is internally translated to a value of -32768 (or whatever the minimum of short is). This overrides any other pin for that repository. It can be used to make sure certain sources are never used; for example, in unattended-upgrades. To prevent semantic changes to existing files, we substitute min + 1 for every pin-priority: <min>. This is a temporary solution, as we are waiting for an ABI break. To add pins with that value, the special Pin-Priority "never" may be used for now. It's unclear if that will persist, or if the interface will change eventually.
* | Merge branch 'pu/refuseunsignedlines' into 'master'Julian Andres Klode2019-02-013-182/+279
|\ \ | | | | | | | | | | | | Fail if InRelease or Release.gpg contain unsigned lines See merge request apt-team/apt!45
| * | Drop buffered writing from clearsigned message extractionDavid Kalnischkies2019-02-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is dropped in the merged code, but the extraction of the clearsigned message code was the only one who had it previously, so the short-desc explains the change from a before-after merge of the branch PoV. It would make sense to enable it, but as we aren't in a time critical paths here we can delay this for after buster to avoid problems. References: 73e3459689c05cd62f15c29d2faddb0fc215ef5e Suggested-By: Julian Andres Klode
| * | Avoid boolean flags by splitting writeTo functionsDavid Kalnischkies2019-02-011-14/+20
| | | | | | | | | | | | | | | Suggested-By: Julian Andres Klode Gbp-Dch: Ignore
| * | Reuse APT::StringView more in LineBufferDavid Kalnischkies2019-01-291-32/+9
| | | | | | | | | | | | | | | | | | | | | No effective change in behaviour, just simplifying and reusing code. Suggested-By: Julian Andres Klode Gbp-Dch: Ignore
| * | Rework ifs to use not instead of == false/trueDavid Kalnischkies2019-01-291-54/+66
| | | | | | | | | | | | | | | | | | | | | | | | No change in the logic itself, just dropping "== true", replacing "== false" with not and moving lines around to make branches more obvious. Suggested-By: Julian Andres Klode Gbp-Dch: Ignore
| * | Refuse files with lines unexpectedly starting with a dashDavid Kalnischkies2019-01-281-9/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We support dash-encoding even if we don't really work with files who would need it as implementations are free to encode every line, but otherwise a line starting with a dash must either be a header we parse explicitly or the file is refused. This is against the RFC which says clients should warn on such files, but given that we aren't expecting any files with dash-started lines to begin with this looks a lot like a we should not continue to touch the file as it smells like an attempt to confuse different parsers by "hiding" headers in-between others. The other slightly more reasonable explanation would be an armor header key starting with a dash, but no existing key does that and it seems unlikely that this could ever happen. Also, it is recommended that clients warn about unknown keys, so new appearance is limited.
| * | Use more abstraction to handle the current line bufferDavid Kalnischkies2019-01-281-83/+133
| | | | | | | | | | | | | | | | | | | | | This is C++, so we can use a bit more abstraction to let the code look a tiny bit nicer hopefully improving readability a bit. Gbp-Dch: Ignore
| * | Explicitly remove the whitespaces defined by RFCDavid Kalnischkies2019-01-281-4/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RFC 4880 section 7.1 "Dash-Escaped Text" at the end defines that only space and tab are allowed, so we should remove only these even if due to use complaining (or now failing) you can't really make use of it. Note that strrstrip was removing '\r\n\t ', not other whitespaces like \v or \f and another big reason to do it explicitly here now is to avoid that a future change adding those could have unintended consequences.
| * | Merge and reuse tmp file handling across the boardDavid Kalnischkies2019-01-243-62/+33
| | | | | | | | | | | | | | | | | | Having many rather similar implementations especially if one is exported while others aren't (and the rest of it not factored out at all) seems suboptimal.
| * | Fail on non-signature lines in Release.gpgDavid Kalnischkies2019-01-231-20/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The exploit for CVE-2019-3462 uses the fact that a Release.gpg file can contain additional content beside the expected detached signature(s). We were passing the file unchecked to gpgv which ignores these extras without complains, so we reuse the same line-reading implementation we use for InRelease splitting to detect if a Release.gpg file contains unexpected data and fail in this case given that we in the previous commit we established that we fail in the similar InRelease case now.
| * | Fail instead of warn for unsigned lines in InReleaseDavid Kalnischkies2019-01-231-106/+99
| |/ | | | | | | | | | | | | | | | | | | | | | | The warnings were introduced 2 years ago without any reports from the wild about them actually appearing for anyone, so now seems to be an as good time as any to switch them to errors. This allows rewritting the code by failing earlier instead of trying to keep going which makes the diff a bit hard to follow but should help simplifying reasoning about it. References: 6376dfb8dfb99b9d182c2fb13aa34b2ac89805e3
* | Step over empty sections in TagFiles with commentsDavid Kalnischkies2019-02-011-2/+6
| | | | | | | | | | | | | | | | Implementing a parser with recursion isn't the best idea, but in practice we should get away with it for the time being to avoid needless codechurn. Closes: #920317 #921037
* | Merge branch 'pu/verify-method-messages-2' into 'master'Julian Andres Klode2019-01-311-0/+31
|\ \ | | | | | | | | | | | | Verify data being sent by methods in SendMessage() See merge request apt-team/apt!48
| * | Verify data being sent by methods in SendMessage()Julian Andres Klode2019-01-301-0/+31
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As a follow-up for CVE-2019-3462, add checks similar to those for redirect to the central SendMessage() function. The checks are a bit more relaxed for values - they may include newlines and unicode characters (newlines get rewritten, so are safe). For keys and the message header, the checks are far more strict: They may only contain alphanumerical characters, the hyphen-minus, and the horizontal space. In case the method tries to send anything else, we construct a legal 400 URI Failed response, and send that. We specifically do not include the item URI, in case it has been compromised (that would cause infinite recursion).