summaryrefslogtreecommitdiff
path: root/apt-pkg/versionmatch.cc
diff options
context:
space:
mode:
authorArch Librarian <arch@canonical.com>2004-09-20 17:01:37 +0000
committerArch Librarian <arch@canonical.com>2004-09-20 17:01:37 +0000
commitacfe730660b33aa49f97740688c26e3725e1994c (patch)
tree8f850b33b32097ea0a482dc35700e5e51762ea2f /apt-pkg/versionmatch.cc
parentcfce80065eb8658b8347ac419021e4a30cf4e119 (diff)
Fix segfault when handling /etc/apt/preferences.
Author: doogie Date: 2003-05-19 17:58:26 GMT Fix segfault when handling /etc/apt/preferences.
Diffstat (limited to 'apt-pkg/versionmatch.cc')
-rw-r--r--apt-pkg/versionmatch.cc10
1 files changed, 7 insertions, 3 deletions
diff --git a/apt-pkg/versionmatch.cc b/apt-pkg/versionmatch.cc
index 1abb7e4ad..9e341852b 100644
--- a/apt-pkg/versionmatch.cc
+++ b/apt-pkg/versionmatch.cc
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: versionmatch.cc,v 1.8 2003/04/24 03:16:58 doogie Exp $
+// $Id: versionmatch.cc,v 1.9 2003/05/19 17:58:26 doogie Exp $
/* ######################################################################
Version Matching
@@ -208,8 +208,12 @@ bool pkgVersionMatch::FileMatch(pkgCache::PkgFileIterator File)
if (Type == Origin)
{
- if (!strcmp(File.Archive(), "now")) /* ignore local "status" file */
- return false;
+ if (OrSite.empty() == false) {
+ if (File->Site == 0 || OrSite != File.Site())
+ return false;
+ } else // so we are talking about file:// or status file
+ if (strcmp(File.Site(),"") == 0 && File->Archive != 0) // skip the status file
+ return false;
return (OrSite == File.Site()); /* both strings match */
}