Package: apt Version: 0.7.14 Severity: normal Tags: patch Hi,
there is a rather unfortunate leak in ReadConfigFile (in Adept, it managed to leak out a megabyte of memory in no time, gods only know why -- there might be another problem lurking calling ReadConfigFile too many times, although it does leak a kilobyte per config line parsed...). I guess a patch is worth a thousand words: diff -ruN apt-0.7.14/apt-pkg/contrib/configuration.cc apt-0.7.14+morn/apt-pkg/contrib/configuration.cc --- apt-0.7.14/apt-pkg/contrib/configuration.cc 2008-05-28 15:22:14.000000000 +0200 +++ apt-0.7.14+morn/apt-pkg/contrib/configuration.cc 2008-08-02 17:08:26.000000000 +0200 @@ -25,6 +25,7 @@ #include <algorithm> #include <fstream> #include <iostream> +#include <string> #include <stdio.h> #include <dirent.h> @@ -513,16 +514,11 @@ std::string Fragment; // Grab the next line of F and place it in Input. - do - { - char *Buffer = new char[1024]; - - F.clear(); - F.getline(Buffer,sizeof(Buffer) / 2); - - Input += Buffer; - } - while (F.fail() && !F.eof()); + std::string Buffer; + + F.clear(); + std::getline(F, Buffer); + Input += Buffer; // Expand tabs in the input line and remove leading and trailing // whitespace. Yours, Petr. -- Package-specific info: -- apt-config dump -- APT ""; APT::Architecture "i386"; APT::Build-Essential ""; APT::Build-Essential:: "build-essential"; APT::Install-Recommends "1"; APT::Install-Suggests "0"; APT::Acquire ""; APT::Acquire::Translation "environment"; APT::NeverAutoRemove ""; APT::NeverAutoRemove:: "^linux-image.*"; APT::NeverAutoRemove:: "^linux-restricted-modules.*"; APT::Periodic ""; APT::Periodic::Download-Upgradeable-Packages "0"; APT::Periodic::Unattended-Upgrade "0"; APT::Authentication ""; APT::Authentication::TrustCDROM "true"; 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::sourceparts "sources.list.d"; 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"; Dir::Log "var/log/apt"; Dir::Log::Terminal "term.log"; Unattended-Upgrade ""; Unattended-Upgrade::Allowed-Origins ""; Unattended-Upgrade::Allowed-Origins:: "Debian stable"; DPkg ""; DPkg::Pre-Install-Pkgs ""; DPkg::Pre-Install-Pkgs:: "/usr/sbin/dpkg-preconfigure --apt || true"; DPkg::Post-Invoke ""; DPkg::Post-Invoke:: "if [ -x /usr/bin/debsums ]; then /usr/bin/debsums --generate=nocheck -sp /var/cache/apt/archives; fi"; Acquire ""; Acquire::http ""; Acquire::http::Timeout "10"; Acquire::ftp ""; Acquire::ftp::Timeout "10"; -- /etc/apt/preferences -- Package: * Pin: release unstable Pin-Priority: 500 Package: gnuplot Pin: version 4.2.0-2 Pin-Priority: 1001 Package: libqt* Pin: version 4.4.0-4+morn Pin-Priority: 1001 -- /etc/apt/sources.list -- deb http://localhost:9999/debian/ stable main deb http://localhost:9999/debian/ lenny main deb http://localhost:9999/debian/ sid main deb http://localhost:9999/debian/ experimental main deb-src http://localhost:9999/debian/ sid main deb-src http://localhost:9999/debian/ experimental main deb http://localhost:9999/marillat/ sid main #deb file:/var/cache/apt-build/repository apt-build main #deb file:/home/mornfall/dev/deb/ ./ # deb http://homer.mexico.debconf.org/debian/ sid main # deb http://homer.mexico.debconf.org/debian/ etch main # deb http://ftp.cz.debian.org/debian/ etch main #deb http://ftp.cz.debian.org/debian/ ../project/experimental main #deb http://ftp.cz.debian.org/debian/ etch main non-free contrib # deb-src http://homer.mexico.debconf.org/debian/ sid main #deb http://mentors.debian.net/debian sid contrib # deb http://security.debian.org/ etch/updates main # deb-src http://security.debian.org/ etch/updates main # deb ftp://ftp.nerim.net/debian-marillat/ etch main # deb ftp://ftp.nerim.net/debian-marillat/ sid main # deb http://snapshot.debian.net/archive pool kpowersave # deb http://snapshot.debian.net/archive pool powersave # deb-src http://kubuntu.no-ip.org/kubuntu dapper main # deb http://ftp.ch.debian-unofficial.org/mirror/debian-unofficial/debian/ sarge main contrib non-free #deb http://ftp.sk.debian-unofficial.org/debian/ sarge main contrib non-free #deb http://download.skype.com/linux/repos/debian/ stable non-free #deb http://kernel-archive.buildserver.net/debian-kernel/ trunk main ## Christian Marillat's Mult-Media Repository for Unstable #deb http://www.debian-multimedia.org sid main ## RareWares/Debian Multi-Media Repository for Unstable #deb http://www.rarewares.org/debian/packages/unstable/ ./ #deb http://kubuntu.org/packages/kde4-3.80.3/ edgy main #deb http://deb.opera.com/opera/ unstable non-free #deb http://www.xapian.org/debian/ unstable main #deb http://anna.fi.muni.cz/~xrockai/adept-3-deb/ ./ #deb http://localhost/result ./ -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.24-rc7-1-morn (PREEMPT) Locale: LANG=ru_RU.UTF-8, LC_CTYPE=ru_RU.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages apt depends on: ii debian-archive-keyring 2008.04.16+nmu1 GnuPG archive keys of the Debian a ii libc6 2.7-13 GNU C Library: Shared libraries ii libgcc1 1:4.3.1-8 GCC support library ii libstdc++6 4.3.1-8 The GNU Standard C++ Library v3 apt recommends no packages. Versions of packages apt suggests: pn apt-doc <none> (no description available) ii aptitude 0.4.11.8-1 terminal-based package manager ii bzip2 1.0.5-0.1 high-quality block-sorting file co ii dpkg-dev 1.14.20 Debian package development tools ii lzma 4.43-14 Compression method of 7z format in -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]