Bug#246144: apt-cache should validate commandline args before parsing the package data
Package: apt
Version: 0.5.24
Severity: minor
apt-cache should validate commandline arguments prior to parsing the
package database:
[~]$ time apt-cache foo
E: Invalid operation foo
real 0m2.283s
user 0m2.084s
sys 0m0.103s
(strace reveals that it indeed reads the database)
I know this is nitpicking, but it shouldn't be hard to fix.
-- Package-specific info:
-- apt-config dump --
APT "";
APT::Architecture "i386";
APT::Build-Essential "";
APT::Build-Essential:: "build-essential";
APT::Get "";
APT::Get::Show-Upgraded "true";
APT::Cache-Limit "16777216";
Dir "/";
Dir::State "var/lib/apt/";
Dir::State::lists "lists/";
Dir::State::cdroms "cdroms.list";
Dir::State::userstatus "status.user";
Dir::State::status "/var/lib/dpkg/status";
Dir::Cache "var/cache/apt/";
Dir::Cache::archives "archives/";
Dir::Cache::srcpkgcache "srcpkgcache.bin";
Dir::Cache::pkgcache "pkgcache.bin";
Dir::Etc "etc/apt/";
Dir::Etc::sourcelist "sources.list";
Dir::Etc::vendorlist "vendors.list";
Dir::Etc::vendorparts "vendors.list.d";
Dir::Etc::main "apt.conf";
Dir::Etc::parts "apt.conf.d";
Dir::Etc::preferences "preferences";
Dir::Bin "";
Dir::Bin::methods "/usr/lib/apt/methods";
Dir::Bin::dpkg "/usr/bin/dpkg";
DPkg "";
DPkg::Pre-Install-Pkgs "";
DPkg::Pre-Install-Pkgs:: "if dpkg -s apt-listbugs | grep -q '^Status: .* ok installed'; then /usr/sbin/apt-listbugs apt || ( test $? -ne 10 || exit 10; echo 'Warning: apt-listbugs exited abnormally, hit any key to continue.' 1>&2 ; read a < /dev/tty ); fi";
DPkg::Pre-Install-Pkgs:: "/usr/bin/apt-listchanges --apt || test $? -ne 10";
DPkg::Pre-Install-Pkgs:: "/usr/sbin/dpkg-preconfigure --apt || true";
DPkg::Tools "";
DPkg::Tools::Options "";
DPkg::Tools::Options::/usr/bin/apt-listchanges "";
DPkg::Tools::Options::/usr/bin/apt-listchanges::Version "2";
DPkg::Post-Invoke "";
DPkg::Post-Invoke:: "test -f /var/run/zope.restart && invoke-rc.d zope restart ; rm -f /var/run/zope.restart";
DPkg::Post-Invoke:: "if [ -x /usr/sbin/localepurge ] && [ $(ps w -p $PPID | grep -c remove) != 1 ]; then /usr/sbin/localepurge; else exit 0; fi";
-- (no /etc/apt/preferences present) --
-- /etc/apt/sources.list --
# ftp.se.debian.org /debian
deb http://ftp.se.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.se.debian.org/debian/ stable main contrib non-free
deb http://ftp.se.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.se.debian.org/debian/ testing main contrib non-free
deb http://ftp.se.debian.org/debian/ unstable main contrib non-free
deb-src http://ftp.se.debian.org/debian/ unstable main contrib non-free
deb http://ftp.se.debian.org/debian/ ../project/experimental main contrib non-free
deb-src http://ftp.se.debian.org/debian/ ../project/experimental main contrib non-free
# ftp.se.debian.org /debian-non-US
deb http://ftp.se.debian.org/debian-non-US/ stable/non-US main contrib non-free
deb-src http://ftp.se.debian.org/debian-non-US/ stable/non-US main contrib non-free
deb http://ftp.se.debian.org/debian-non-US/ testing/non-US main contrib non-free
deb-src http://ftp.se.debian.org/debian-non-US/ testing/non-US main contrib non-free
deb http://ftp.se.debian.org/debian-non-US/ unstable/non-US main contrib non-free
deb-src http://ftp.se.debian.org/debian-non-US/ unstable/non-US main contrib non-free
# apt-build
deb file:/var/cache/apt-build/repository apt-build main
# mplayer
deb ftp://ftp.nerim.net/debian-marillat/ unstable main
deb-src http://perso.wanadoo.fr/debian/ unstable main
# java
deb http://jrfonseca.dyndns.org/debian ./
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.5
Locale: LANG=C, LC_CTYPE=lt_LT.UTF-8
Versions of packages apt depends on:
ii libc6 2.3.2.ds1-12 GNU C Library: Shared libraries an
ii libgcc1 1:3.4-0pre4 GCC support library
ii libstdc++5 1:3.3.3-6 The GNU Standard C++ Library v3
-- no debconf information
Reply to: