It might introduce a regression on 1.1 and newer releases (everything but trusty), such that if one repository is attacked, all repositories would be blocked. Sorry, I thought you were CCed on that email, but it seems this was in another sub-thread without an Ubuntu CC.
// An error occured during reading - propagate it up
- if (_error->PendingError()) {
+ bool const hasErrored = _error->PendingError();
+ _error->MergeWithStack();
+ if (hasErrored)
return false;
- }
if (found_signature == true)
return _error->Error("Signature in file %s wasn't closed", InFile.c_str());
I'll add that tomorrow morning, and then we can eye for a release next week, so you can get your proposed date if nobody disagrees :)
It might introduce a regression on 1.1 and newer releases (everything but trusty), such that if one repository is attacked, all repositories would be blocked. Sorry, I thought you were CCed on that email, but it seems this was in another sub-thread without an Ubuntu CC.
David wrote we need something like this:
diff --git a/apt-pkg/ contrib/ gpgv.cc b/apt-pkg/ contrib/ gpgv.cc .f9fe6b546 100644 contrib/ gpgv.cc contrib/ gpgv.cc dFile(std: :string const &InFile, FileFd * const ContentFile,
index b49569ae6.
--- a/apt-pkg/
+++ b/apt-pkg/
@@ -315,6 +315,7 @@ bool SplitClearSigne
char *buf = NULL; >PushToStack( );
_strrstrip( buf); dFile(std: :string const &InFile, FileFd * const ContentFile,
ContentFile- >Flush( );
size_t buf_size = 0;
+ _error-
while (GetLineErrno(&buf, &buf_size, in, InFile) != -1)
{
@@ -386,9 +387,10 @@ bool SplitClearSigne
// An error occured during reading - propagate it up >PendingError( )) { >PendingError( ); >MergeWithStack ();
- if (_error-
+ bool const hasErrored = _error-
+ _error-
+ if (hasErrored)
return false;
- }
if (found_signature == true) >Error( "Signature in file %s wasn't closed", InFile.c_str());
return _error-
I'll add that tomorrow morning, and then we can eye for a release next week, so you can get your proposed date if nobody disagrees :)