From: Arch Librarian <arch@canonical.com>
Date: Mon, 20 Sep 2004 17:02:41 +0000 (+0000)
Subject: * Avoid segfault if a package name is specified which c...
X-Git-Tag: 0.7.24ubuntu1~682
X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/418af5d2e7095f597d4d52e33d9504c82f865b41

* 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)
---

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)
 
  --