upx-ucl-beta: broken on 64-bit systems

Bug #27055 reported by Debian Bug Importer
4
Affects Status Importance Assigned to Milestone
upx-ucl-beta (Debian)
Fix Released
Unknown
upx-ucl-beta (Ubuntu)
Confirmed
Low
Giuseppe

Bug Description

Automatically imported from Debian bug report #343250 http://bugs.debian.org/343250

Revision history for this message
Debian Bug Importer (debzilla) wrote :

Message-ID: <20051213230154.11523.15281.reportbug@localhost>
Date: Tue, 13 Dec 2005 15:01:54 -0800
From: Max <email address hidden>
To: Debian Bug Tracking System <email address hidden>
Subject: upx-ucl-beta: broken on 64-bit systems

Package: upx-ucl-beta
Version: 1:1.94+0.20051022cvs-1
Severity: grave
Justification: renders package unusable

upx is broken on debian-amd64. For example, on "upx -d somefile" it reports

upx: util.h:71: int ptr_diff(const T*, const T*) [with T = unsigned char]: Assertion `(int)d == d' failed.
Aborted

The very same command works fine on debian-i386.

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'sarge-unsupported')
Architecture: amd64 (x86_64)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.14.64
Locale: LANG=ru_RU.KOI8-R, LC_CTYPE=ru_RU.KOI8-R (charmap=KOI8-R)

Versions of packages upx-ucl-beta depends on:
ii libc6 2.3.5-8.1 GNU C Library: Shared libraries an
ii libgcc1 1:4.0.2-5 GCC support library
ii libstdc++6 4.0.2-5 The GNU Standard C++ Library v3
ii libucl1 1.03-2 Portable compression library - run
ii zlib1g 1:1.2.3-8 compression library - runtime

upx-ucl-beta recommends no packages.

-- no debconf information

Revision history for this message
Debian Bug Importer (debzilla) wrote :

Message-ID: <email address hidden>
Date: Thu, 15 Dec 2005 08:54:21 +0100
From: Robert Luberda <email address hidden>
To: Max <email address hidden>, <email address hidden>
Subject: Re: Bug#343250: upx-ucl-beta: broken on 64-bit systems

Max wrote:

>
> upx is broken on debian-amd64. For example, on "upx -d somefile" it reports
>
> upx: util.h:71: int ptr_diff(const T*, const T*) [with T = unsigned char]: Assertion `(int)d == d' failed.
> Aborted

Thanks for your report.
I've just uploaded new CVS snapshot of upx-ucl-beta
(1.94+0.20051214cvs-1). Could you please check if the problem still
exists in that version?

BTW. I'm wondering if the upx-ucl package has the same bug. I would be
grateful it you could test it also.

Best Regards
robert

Revision history for this message
Debian Bug Importer (debzilla) wrote :

Message-ID: <email address hidden>
Date: Fri, 16 Dec 2005 11:42:11 -0800
From: Max Alekseyev <email address hidden>
To: Robert Luberda <email address hidden>
CC: <email address hidden>
Subject: Re: [Bulk] Re: Bug#343250: upx-ucl-beta: broken on 64-bit systems

Robert Luberda wrote:

> Thanks for your report.
> I've just uploaded new CVS snapshot of upx-ucl-beta
> (1.94+0.20051214cvs-1). Could you please check if the problem still
> exists in that version?

It fails to be build from sources on amd64 with the following error:

g++ -O2 -g -DWITH_UCL -o packmast.o -c packmast.cpp
packmast.cpp: In function 'Packer* try_packers(InputFile*, Packer* (*)(Packer*, InputFile*))':
packmast.cpp:218: error: cannot allocate an object of abstract type 'PackLinuxElf64amd'
p_lx_elf.h:221: note: because the following virtual functions are pure within 'PackLinuxElf64amd':
p_unix.h:72: note: virtual void PackUnix::set_native64(void*, long unsigned int) const
make[1]: *** [packmast.o] Error 1

> BTW. I'm wondering if the upx-ucl package has the same bug. I would be
> grateful it you could test it also.

upx-ucl works OK.

Max

Revision history for this message
Debian Bug Importer (debzilla) wrote :

Message-ID: <email address hidden>
Date: Sat, 17 Dec 2005 18:04:50 +0100
From: Robert Luberda <email address hidden>
To: Max Alekseyev <email address hidden>, <email address hidden>
Subject: Re: Bug#343250: upx-ucl-beta: broken on 64-bit systems

--------------030300000508060608020105
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 7bit

Max Alekseyev wrote:

Hi,

> It fails to be build from sources on amd64 with the following error:

I've just uploaded 1:1.94+0.20051214cvs-2, which fixes the error. The
patch is very simple, I'm attaching it in case you didn't want to wait
for autobuilders and recompile the package yourself.

Please check if this version works for you on amd64.
It seems the upstream has added support for native amd64 executables,
could you also please test it?

>
> upx-ucl works OK.

OK, that's great.

Best Regards,
robert

--------------030300000508060608020105
Content-Type: text/x-patch;
 name="upx-ftbfs-64bit.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="upx-ftbfs-64bit.patch"

--- src/p_lx_elf.h.old 2005-12-14 08:21:58.000000000 +0100
+++ src/p_lx_elf.h 2005-12-17 16:39:49.000000000 +0100
@@ -208,7 +208,7 @@
     virtual acc_uint64l_t get_native64(const void *b) const { return get_le64(b); }
     virtual unsigned get_native32(const void *b) const { return get_le32(b); }
     virtual unsigned get_native16(const void *b) const { return get_le16(b); }
- virtual void set_native64(void *b, unsigned long long v) const { set_le64(b, v); }
+ virtual void set_native64(void *b, acc_uint64l_t v) const { set_le64(b, v); }
     virtual void set_native32(void *b, unsigned v) const { set_le32(b, v); }
     virtual void set_native16(void *b, unsigned v) const { set_le16(b, v); }
 };

--------------030300000508060608020105--

Revision history for this message
Debian Bug Importer (debzilla) wrote :

Message-ID: <email address hidden>
Date: Sun, 18 Dec 2005 15:10:38 -0800
From: Max Alekseyev <email address hidden>
To: Robert Luberda <email address hidden>
CC: <email address hidden>
Subject: Re: Bug#343250: upx-ucl-beta: broken on 64-bit systems

Robert Luberda wrote:

> I've just uploaded 1:1.94+0.20051214cvs-2, which fixes the error. The
> patch is very simple, I'm attaching it in case you didn't want to wait
> for autobuilders and recompile the package yourself.
>
> Please check if this version works for you on amd64.

No. It reports:

upx: util.h:71: int ptr_diff(const T*, const T*) [with T = unsigned char]: Assertion `(int)d == d' failed.
Aborted

Max

Revision history for this message
Debian Bug Importer (debzilla) wrote :

Message-ID: <email address hidden>
Date: Fri, 23 Dec 2005 22:08:35 +0100
From: Robert Luberda <email address hidden>
To: Max Alekseyev <email address hidden>
Cc: <email address hidden>
Subject: Re: Bug#343250: upx-ucl-beta: broken on 64-bit systems

Max Alekseyev wrote:

Hi,

>
> No. It reports:
>
> upx: util.h:71: int ptr_diff(const T*, const T*) [with T = unsigned
> char]: Assertion `(int)d == d' failed.
> Aborted

Thanks.

I tried the command on pergolesi.debian.org (an amd64 machine accessible
for Debian developers), but can't reproduce that error.
I.e. I can pack the file, unpack it without any problems, but when I try
to run the command after packing with upx, it fails with a segmentation
fault.

It needs more investiations, but I can't do this until the first week of
January.

Best Regards,
robert

Matt Zimmerman (mdz)
Changed in upx-ucl-beta:
status: Unconfirmed → Confirmed
Revision history for this message
Daniel T Chen (crimsun) wrote :

(http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=50;att=0;bug=343250) "this bug apparently only affects compression of win32 PE executables, and not ordinary Linux ELF executables"

Changed in upx-ucl-beta:
importance: Medium → Low
Giuseppe (remandrake)
Changed in upx-ucl-beta (Ubuntu):
assignee: nobody → Giuseppe (remandrake)
Changed in upx-ucl-beta (Debian):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.