Package: apt-build
Version: 0.12.17
Severity: normal
It seems that there is a little bug in the apt-build-wrapper; when
parsing the configuration file, the first malloc is well done, but
after, the realloc call misses the (MAKE_ARGC > GCC_ARGC ? MAKE_ARGC :
GCC_ARGC) thing.
As a consequence, the argv array given in parameter to execvp may
contain weird data (in my case, one of the arguments was just "").
Patch attached, cheers
-manu
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (300, 'unstable')
Architecture: amd64 (x86_64)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17
Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=ISO-8859-15)
Versions of packages apt-build depends on:
ii apt 0.6.45 Advanced front-end for dpkg
ii apt-utils 0.6.45 APT utility programs
ii debconf [debconf-2.0] 1.5.3 Debian configuration management sy
ii devscripts 2.9.20 Scripts to make the life of a Debi
ii dpkg-dev 1.13.22 package building tools for Debian
ii g++ 4:4.1.1-5 The GNU C++ compiler
ii gcc 4:4.1.1-5 The GNU C compiler
ii libappconfig-perl 1.56-2 Perl module for configuration file
ii libapt-pkg-perl 0.1.20 Perl interface to libapt-pkg
ii perl 5.8.8-6 Larry Wall's Practical Extraction
Versions of packages apt-build recommends:
ii build-essential 11.3 informational list of build-essent
ii fakeroot 1.5.10 Gives a fake root environment
-- debconf information:
apt-build/arch_alpha: ev4
apt-build/arch_arm: armv2
* apt-build/olevel: Medium
* apt-build/build_dir: /var/cache/apt-build/build
apt-build/arch_sparc: sparc
apt-build/arch_amd: k6
* apt-build/options: -ftree-vectorize -msse2 -pipe -frename-registers -fweb
-ffast-math -m64
apt-build/arch_intel: pentium
* apt-build/make_options:
* apt-build/repository_dir: /var/cache/apt-build/repository
* apt-build/arch_amd64: k8
* apt-build/add_to_sourceslist: true
diff -Naur apt-build-0.12.17/apt-build.h apt-build-0.12.17-manu/apt-build.h
--- apt-build-0.12.17/apt-build.h 2005-12-11 18:05:25.000000000 +0100
+++ apt-build-0.12.17-manu/apt-build.h 2006-08-05 21:40:58.000000000 +0200
@@ -5,6 +5,7 @@
#define MAKE_ARGC 0
#define GCC_ARGC 2
+#define MAX_ARGC (MAKE_ARGC > GCC_ARGC ? MAKE_ARGC : GCC_ARGC)
#define BUF_SIZE 1024
diff -Naur apt-build-0.12.17/config.c apt-build-0.12.17-manu/config.c
--- apt-build-0.12.17/config.c 2006-01-07 23:50:25.000000000 +0100
+++ apt-build-0.12.17-manu/config.c 2006-08-05 21:41:27.000000000 +0200
@@ -97,7 +97,7 @@
/* Build the new command line */
cmd_line_args =
- (char **) malloc (sizeof (char *) * (argc + (MAKE_ARGC > GCC_ARGC ? MAKE_ARGC : GCC_ARGC) + 1));
+ (char **) malloc (sizeof (char *) * (argc + MAX_ARGC + 1));
cmd_line_args[nb_apt_build_options++] = strdup (argv[0]);
@@ -121,7 +121,7 @@
{
cmd_line_args = (char **)
realloc (cmd_line_args,
- sizeof (char *) * (argc + nb_apt_build_options + 1));
+ sizeof (char *) * (argc + MAX_ARGC + nb_apt_build_options + 1));
cmd_line_args[nb_apt_build_options++] = strdup (str);
}
while((str = strtok(NULL, " ")));