From 196d590a99e309764e07c9dc23ea98897eebf53a Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 27 Jul 2016 22:21:58 +0200 Subject: [PATCH] (error) va_list 'args' was opened but not closed by va_end() Reported-By: cppcheck Gbp-Dch: Ignore --- apt-pkg/contrib/error.cc | 34 +++++++++---------- apt-pkg/contrib/fileutl.cc | 18 +++++----- apt-pkg/edsp.cc | 2 +- .../integration/test-releasefile-verification | 2 +- 4 files changed, 26 insertions(+), 30 deletions(-) diff --git a/apt-pkg/contrib/error.cc b/apt-pkg/contrib/error.cc index 8a87e16e9..c06ea8364 100644 --- a/apt-pkg/contrib/error.cc +++ b/apt-pkg/contrib/error.cc @@ -68,13 +68,12 @@ bool GlobalError::NAME (const char *Function, const char *Description,...) { \ va_list args; \ size_t msgSize = 400; \ int const errsv = errno; \ - while (true) { \ + bool retry; \ + do { \ va_start(args,Description); \ - bool const retry = InsertErrno(TYPE, Function, Description, args, errsv, msgSize); \ + retry = InsertErrno(TYPE, Function, Description, args, errsv, msgSize); \ va_end(args); \ - if (retry == false) \ - break; \ - } \ + } while (retry); \ return false; \ } GEMessage(FatalE, FATAL) @@ -90,13 +89,12 @@ bool GlobalError::InsertErrno(MsgType const &type, const char *Function, va_list args; size_t msgSize = 400; int const errsv = errno; - while (true) { + bool retry; + do { va_start(args,Description); - bool const retry = InsertErrno(type, Function, Description, args, errsv, msgSize); + retry = InsertErrno(type, Function, Description, args, errsv, msgSize); va_end(args); - if (retry == false) - break; - } + } while (retry); return false; } /*}}}*/ @@ -127,12 +125,12 @@ bool GlobalError::InsertErrno(MsgType type, const char* Function, bool GlobalError::NAME (const char *Description,...) { \ va_list args; \ size_t msgSize = 400; \ - while (true) { \ + bool retry; \ + do { \ va_start(args,Description); \ - if (Insert(TYPE, Description, args, msgSize) == false) \ - break; \ + retry = Insert(TYPE, Description, args, msgSize); \ va_end(args); \ - } \ + } while (retry); \ return false; \ } GEMessage(Fatal, FATAL) @@ -147,12 +145,12 @@ bool GlobalError::Insert(MsgType const &type, const char *Description,...) { va_list args; size_t msgSize = 400; - while (true) { + bool retry; + do { va_start(args,Description); - if (Insert(type, Description, args, msgSize) == false) - break; + retry = Insert(type, Description, args, msgSize); va_end(args); - } + } while (retry); return false; } /*}}}*/ diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index fc578cd23..8fd0ac617 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -2682,13 +2682,12 @@ bool FileFd::FileFdErrno(const char *Function, const char *Description,...) va_list args; size_t msgSize = 400; int const errsv = errno; - while (true) - { + bool retry; + do { va_start(args,Description); - if (_error->InsertErrno(GlobalError::ERROR, Function, Description, args, errsv, msgSize) == false) - break; + retry = _error->InsertErrno(GlobalError::ERROR, Function, Description, args, errsv, msgSize); va_end(args); - } + } while (retry); return false; } /*}}}*/ @@ -2697,13 +2696,12 @@ bool FileFd::FileFdError(const char *Description,...) { Flags |= Fail; va_list args; size_t msgSize = 400; - while (true) - { + bool retry; + do { va_start(args,Description); - if (_error->Insert(GlobalError::ERROR, Description, args, msgSize) == false) - break; + retry = _error->Insert(GlobalError::ERROR, Description, args, msgSize); va_end(args); - } + } while (retry); return false; } /*}}}*/ diff --git a/apt-pkg/edsp.cc b/apt-pkg/edsp.cc index 47b914fd5..740eb0a0d 100644 --- a/apt-pkg/edsp.cc +++ b/apt-pkg/edsp.cc @@ -340,7 +340,7 @@ static bool WriteScenarioLimitedDependency(FileFd &output, static bool SkipUnavailableVersions(pkgDepCache &Cache, pkgCache::PkgIterator const &Pkg, pkgCache::VerIterator const &Ver)/*{{{*/ { /* versions which aren't current and aren't available in - any "online" source file are bad, expect if they are the choosen + any "online" source file are bad, expect if they are the chosen candidate: The exception is for build-dep implementation as it creates such pseudo (package) versions and removes them later on again. We filter out versions at all so packages in 'rc' state only available diff --git a/test/integration/test-releasefile-verification b/test/integration/test-releasefile-verification index 500c7b0bd..82e48ffa8 100755 --- a/test/integration/test-releasefile-verification +++ b/test/integration/test-releasefile-verification @@ -379,7 +379,7 @@ cat > rootdir/etc/apt/apt.conf.d/weaken-security <