[Pkg-db-devel] Bug#400131: /usr/lib/libdb3.so.3.0.2: logic error in qam_verify.c

Jochen Voss voss at debian.org
Fri Nov 24 01:39:19 CET 2006


Package: libdb3
Version: 3.2.9+dfsg-0.1
Severity: normal
File: /usr/lib/libdb3.so.3.0.2

Hi,

recently I came across the following bit of code in the source file
db-3.2.9+dfsg/qam/qam_verify.c (function __qam_vrfy_data, around line
129):

                qflags = qp->flags;
                qflags &= !(QAM_VALID | QAM_SET);
                if (qflags != 0) {
                        ...
                }

QAM_VALID and QAM_SET are defined in "qam.h" as follows:

    typedef struct _qamdata {
	    u_int8_t  flags;        /* 00: delete bit. */
    #define QAM_VALID       0x01
    #define QAM_SET         0x02
	    u_int8_t  data[1];      /* Record. */
    } QAMDATA;

To me it looks like the "qflags &= ..." statement was meant to read

                qflags &= ~(QAM_VALID | QAM_SET);

(with a bitwise not instead of a logical not).

I did not check what the consequences of this bug are, but probably it
should be fixed anyway.

I hope this helps,
Jochen

-- System Information:
Debian Release: 4.0
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18.3
Locale: LANG=en_GB.iso885915, LC_CTYPE=en_GB.iso885915 (charmap=ISO-8859-15)

Versions of packages libdb3 depends on:
ii  libc6                        2.3.6.ds1-8 GNU C Library: Shared libraries

libdb3 recommends no packages.

-- no debconf information




More information about the Pkg-db-devel mailing list