summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArch Librarian <arch@canonical.com>2004-09-20 17:02:41 +0000
committerArch Librarian <arch@canonical.com>2004-09-20 17:02:41 +0000
commit418af5d2e7095f597d4d52e33d9504c82f865b41 (patch)
tree45d7252187979742a22d8f0c1c7b7751c42ced8f
parenta2a43337c966feb5094e2d1b9c5f1770577d4fde (diff)
* Avoid segfault if a package name is specified which c...
Author: mdz Date: 2003-08-07 20:51:50 GMT * Avoid segfault if a package name is specified which consists entirely of characters which look like end tags ('+', '-') (Closes: #200425)
-rw-r--r--cmdline/apt-get.cc6
-rw-r--r--debian/changelog3
2 files changed, 6 insertions, 3 deletions
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc
index 0ab1dc1d2..0d32b9b39 100644
--- a/cmdline/apt-get.cc
+++ b/cmdline/apt-get.cc
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: apt-get.cc,v 1.133 2003/07/25 22:03:49 mdz Exp $
+// $Id: apt-get.cc,v 1.134 2003/08/07 20:51:50 mdz Exp $
/* ######################################################################
apt-get - Cover for dpkg
@@ -1350,14 +1350,14 @@ bool DoInstall(CommandLine &CmdL)
while (Cache->FindPkg(S).end() == true)
{
// Handle an optional end tag indicating what to do
- if (S[Length - 1] == '-')
+ if (Length >= 1 && S[Length - 1] == '-')
{
Remove = true;
S[--Length] = 0;
continue;
}
- if (S[Length - 1] == '+')
+ if (Length >= 1 && S[Length - 1] == '+')
{
Remove = false;
S[--Length] = 0;
diff --git a/debian/changelog b/debian/changelog
index da538197d..031cad53a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -12,6 +12,9 @@ apt (0.5.9) unstable; urgency=low
written by a single write(2)
* Add new French man pages to doc/fr/.cvsignore
* Add freebsd to buildlib/ostable (Closes: #193430)
+ * Avoid segfault if a package name is specified which consists
+ entirely of characters which look like end tags ('+', '-')
+ (Closes: #200425)
--