Bug#574956: dpkg drops zero-epoch in status file

Goswin von Brederlow goswin-v-b at web.de
Tue May 4 02:59:11 UTC 2010


Florian Weimer <fw at deneb.enyo.de> writes:

> * Integer overflow in epoch handling
>
> (i386)$ dpkg --compare-versions 4294967296:1 '>>' 4294967295:1 ; echo $?
> 1
> (amd64)$ dpkg --compare-versions 4294967296:1 '>>' 4294967295:1 ; echo $?
> 0

Well, this is wrong if one is to take the wording of policy to mean a C
type. An "unsigned integer" has the same size on i386 and amd64.

> The problem is that the size of long is archtecture-specific, and that
> there is no proper error handling.  apt is not affected by this.
>
> This appears to be a dpkg bug, filed as #580038.

An epoch is defined as

epoch
    This is a single (generally small) unsigned integer. It may be
    omitted, in which case zero is assumed. If it is omitted then the
    upstream_version may not contain any colons.

Lets remove the "generally" from policy so we can truely declare this
case as insane.

MfG
        Goswin



More information about the pkg-perl-maintainers mailing list