Your message dated Mon, 10 Nov 2008 17:17:07 +0000
with message-id <[EMAIL PROTECTED]>
and subject line Bug#504434: fixed in reprepro 3.5.2-5
has caused the Debian Bug report #504434,
regarding reprepro: can't insert large binary package with 'Contents' directive 
enabled
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [EMAIL PROTECTED]
immediately.)


-- 
504434: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504434
Debian Bug Tracking System
Contact [EMAIL PROTECTED] with problems
--- Begin Message ---
Package: reprepro
Version: 3.5.2-4
Severity: important
Tags: patch

If reprepro has Contents file creation enabled (i.e., conf has "Contents: ." 
directive),
then inserting a large binary package (larger than about 1GB, or more 
precisely, 
one whose data.tar.gz component is larger than 999,999,999 bytes) leads to the 
following error:

etch:~# reprepro includedeb hardy bigpackage_1.0-1_amd64.deb
Exporting indices...
Error calculating length field in ar file 
/var/www/reprepro/pool/localrepo/b/bigpackage/bigpackage_1.0-1_amd64.deb
Could not find a data.tar.gz file within 
'/var/www/reprepro/pool/localrepo/b/bigpackage/bigpackage_1.0-1_amd64.deb'! 

See patch below. The code in ar.c parses the header structs of an AR format 
file.
The ASCII decimal size field of that header is 10 bytes long, right-padded with
spaces if the byte size is 999,999,999 or less. To call strtoul(), the code in 
ar.c tries to force a 0-byte ('\0') after that header field, but is off by one 
byte.
This isn't usually a problem, because strtoul() stops parsing when it hits
the space-padding. But once the file size exceeds 999,999,999 bytes,
the space-padding is no longer present, and the 0-byte is in the wrong place.
In this case *p would equal to '`' instead of '\0'.

Here is a patch that fixes this problem:

diff -ruN orig.reprepro-3.5.2/ar.c reprepro-3.5.2/ar.c
--- orig.reprepro-3.5.2/ar.c    2008-03-06 07:34:39.000000000 -0700
+++ reprepro-3.5.2/ar.c    2008-11-03 11:51:34.000000000 -0700
@@ -190,7 +190,7 @@

     /* calculate the length and mark possible fillers being needed */

-    ar->currentheader.ah_size[11] = '\0'; // ugly, but it works
+    ar->currentheader.ah_size[10] = '\0'; // ugly, but it works

     ar->bytes_left = strtoul(ar->currentheader.ah_size,&p,10);
     if( *p != '\0' && *p != ' ' ) {

Thanks,

Aramian

Credits: The author would like to thank Alexander Perlis for his help in 
putting together this bug report.

-- System Information:
Debian Release: 4.0
  APT prefers stable
  APT policy: (700, 'stable'), (650, 'testing'), (600, 'unstable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-6-686
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages reprepro depends on:
ii  libarchive1            2.4.17-2          Single library to read/write tar, 
ii  libbz2-1.0             1.0.5-1           high-quality block-sorting file co
ii  libc6                  2.7-15            GNU C Library: Shared libraries
ii  libdb4.6               4.6.21-11         Berkeley v4.6 Database Libraries [
ii  libgpg-error0          1.4-2             library for common error values an
ii  libgpgme11             1.1.6-2           GPGME - GnuPG Made Easy
ii  zlib1g                 1:1.2.3.3.dfsg-12 compression library - runtime

Versions of packages reprepro recommends:
ii  apt                         0.6.46.4-0.1 Advanced front-end for dpkg

-- no debconf information



--- End Message ---
--- Begin Message ---
Source: reprepro
Source-Version: 3.5.2-5

We believe that the bug you reported is fixed in the latest version of
reprepro, which is due to be installed in the Debian FTP archive:

reprepro_3.5.2-5.diff.gz
  to pool/main/r/reprepro/reprepro_3.5.2-5.diff.gz
reprepro_3.5.2-5.dsc
  to pool/main/r/reprepro/reprepro_3.5.2-5.dsc
reprepro_3.5.2-5_sparc.deb
  to pool/main/r/reprepro/reprepro_3.5.2-5_sparc.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Bernhard R. Link <[EMAIL PROTECTED]> (supplier of updated reprepro package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Mon, 10 Nov 2008 18:00:12 CET
Source: reprepro
Binary: reprepro
Architecture: source sparc
Version: 3.5.2-5
Distribution: unstable
Urgency: low
Maintainer: Bernhard R. Link <[EMAIL PROTECTED]>
Changed-By: Bernhard R. Link <[EMAIL PROTECTED]>
Description: 
 reprepro   - Debian package repository producer
Closes: 489652 496347 500105 502531 504434
Changes: 
 reprepro (3.5.2-5) unstable; urgency=low
 .
   * backport some bugfixes of 3.6.2 to 3.5.2:
   - fix parsing contents of very large .deb files (Closes: 504434)
   - fix bug in (hopefully unreachable) error handling in tracking code
     so that it no longer damages the tracking data even more
   - improve documentation of remove and removefilter (Closes: 500105)
   - improve documentation of copysrc and -C (Closes: 496347)
   - fix many spelling and other errors in the manpage (Closes: 502531)
   * backport forgotten fixes of 3.6.0:
   - fix bashism in bzip.example (Closes: 489652)
Checksums-Sha256: 
 6d3d25da98f1c01cf09f3b982505b00cee94b0203f80e0100735ba93e9e61864 1346 
reprepro_3.5.2-5.dsc
 c92560741c8aca917b7f8fd11bcdb202a6123eff93bae7ca2c5dc38401899bd9 16926 
reprepro_3.5.2-5.diff.gz
 fe44eb02cdc8771a25a09537c25b14bce36ff0efd1d01fc58ecd26b5b16f1139 333322 
reprepro_3.5.2-5_sparc.deb
Checksums-Sha1: 
 52e524602f77c783457f449352cc85cefd8307cd 1346 reprepro_3.5.2-5.dsc
 c6f074e162f1a955bbf8b4d0c6c554a549b336b6 16926 reprepro_3.5.2-5.diff.gz
 e67bbd1331d3fad972c31caa3d22ec74e483ef82 333322 reprepro_3.5.2-5_sparc.deb
Files: 
 049acd06331ef86bcedd951c842ceebf 1346 utils extra reprepro_3.5.2-5.dsc
 94d2aae7adc20dd0103caa8931857608 16926 utils extra reprepro_3.5.2-5.diff.gz
 5547b8a6a0ac4d4bdd38bd2c80be32f7 333322 utils extra reprepro_3.5.2-5_sparc.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iQCVAwUBSRhoplsyKVgPHZLaAQKkNQP+I9xFiS8ytFmdjrgjIG12hCZwM14T2EJj
NdcYGKNs1FRqMLV/id0x34oWD16j8Vs8TDii/T8CuhoixZiYA+AHQx7hlESqk0lE
KXljhJh/bjtqcUPVOIug+ukA19a7tX3ptUqAk1GXYr8FeukpDolTvDSqrlRBn+FG
zlNnC4Dv47w=
=KW3v
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to