Package: slapd
Version: 2.2.27-0pm3
Severity: important
Tags: patch

Hi,

when TRY_DBD_RECOVERY=yes and SLAPD_USER and this user has no "sensible" shell,
then /etc/init.d/slapd reports that db4.2_recover failed on the first DBD 
database.

The culprit is the command line wiwhich is used to start db4.2_recover.
It assumes that $SLAPD_USER has a sensible shell, which is not guaranteed.

The attached patch fixes it by calling su with the additional option -s /bin/sh

CU
Peter


-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.11-1-k7
Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=ISO-8859-15)

Versions of packages slapd depends on:
ii  coreutils [fileutils]       5.2.1-2      The GNU core utilities
ii  debconf                     1.4.51       Debian configuration management sy
ii  fileutils                   5.2.1-2      The GNU file management utilities 
ii  libc6                       2.3.2.ds1-22 GNU C Library: Shared libraries an
ii  libdb4.2                    4.2.52-19pm1 Berkeley v4.2 Database Libraries [
ii  libiodbc2                   3.52.2-3     iODBC Driver Manager
ii  libldap-2.2-7               2.2.27-0pm3  OpenLDAP libraries
ii  libltdl3                    1.5.6-6      A system independent dlopen wrappe
ii  libperl5.8                  5.8.7-3      Shared Perl library
ii  libsasl2                    2.1.19-1.5   Authentication abstraction library
ii  libslp1                     1.2.1-2      OpenSLP libraries
ii  libssl0.9.7                 0.9.7e-3     SSL shared libraries
ii  libwrap0                    7.6.dbs-8    Wietse Venema's TCP wrappers libra
ii  perl [libmime-base64-perl]  5.8.7-3      Larry Wall's Practical Extraction 
ii  psmisc                      21.6-1       Utilities that use the proc filesy

-- debconf information excluded
--- debian/slapd.init
+++ debian/slapd.init   2005-06-30 12:44:23.000000000 +0200
@@ -147,7 +147,7 @@
        local dbdir
        dbdir="$1"
        if [  "$SLAPD_USER" ]; then
-               reason=`su "$SLAPD_USER" -c \
+               reason=`su "$SLAPD_USER" -s /bin/sh -c \
                        "$DB_RECOVER_CMD -eh $dbdir" 2>&1` || \
                        db_recover_failed $dbdir
        else

Reply via email to