[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