]> granicus.if.org Git - mutt/commitdiff
Attempt to clean up DB back-end selection
authorBrendan Cully <brendan@kublai.com>
Sat, 8 Sep 2007 22:20:47 +0000 (15:20 -0700)
committerBrendan Cully <brendan@kublai.com>
Sat, 8 Sep 2007 22:20:47 +0000 (15:20 -0700)
ChangeLog
configure.ac

index 3df8d2dd13c6aaa9495c14a84204195675e7c71b..f56e57c79562cd26072c78d09f03473f5b9dda91 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,28 +1,31 @@
-2007-09-05 07:16 +0000  Rocco Rutte  <pdmef@gmx.net>  (964658b145df)
+2007-09-06 20:13 +0200  Rocco Rutte  <pdmef@gmx.net>  (648ad3832e82)
+
+       * muttlib.c: Rewrite padding logic for mutt_FormatString()
+
+       Do so by checking columns and bytes individually to make sure we
+       really don't write past the end of allocated buffers. This patch
+       fixes all my crashes I saw with files attached to/with the settings
+       for #2882 and #2900.
+
+2007-09-05 10:52 +0000  Rocco Rutte  <pdmef@gmx.net>  (078744e84667)
+
+       * init.c, pattern.c: Fix/improve intl error messages
 
        * browser.c: Interpret relative paths in browser relative to shown
        dir, not working dir (closes #2471).
 
-2007-09-05 07:12 +0000  Rocco Rutte  <pdmef@gmx.net>  (e0c7b3a70c3e)
-
        * help.c, pager.c, pager.h: Teach pager how to ignore $wrap and use it
        for help (closes #2896).
 
-2007-09-05 07:07 +0000  Rocco Rutte  <pdmef@gmx.net>  (dc54d31493a2)
-
        * doc/manual.xml.head: Manual: make sure <screen/> contents in shorter
        than 80 chars
 
        Otherwise conversion to plain text may cause line breaks rendering
        examples syntacially invalid (closes #2185).
 
-2007-09-05 07:03 +0000  Rocco Rutte  <pdmef@gmx.net>  (3f59f7dd2965)
-
        * doc/manual.xml.head: Manual: don't use <screen/> to present
        structured data
 
-2007-09-05 06:56 +0000  Rocco Rutte  <pdmef@gmx.net>  (bb4f47b4578d)
-
        * muttlib.c: Fix buffer overflow in mutt_FormatString()
 
        The variable in question is supposed to track string sizes, not
@@ -30,7 +33,7 @@
 
 2007-09-04 17:22 -0700  Brendan Cully  <brendan@kublai.com>  (7df563e4b7fd)
 
-       * ChangeLog, configure.ac: Add libz to crypto libs if available
+       * configure.ac: Add libz to crypto libs if available
        (closes #2303).
 
 2007-09-04 12:06 -0700  Ivan Vilata i Balaguer  <ivan@selidor.net>  (d9a6b3f8a492)
index 34d11e281646011268ce8a6891fb4a5467c5c789..91c63941013f548044c5c311dce3462151ec4e83 100644 (file)
@@ -808,12 +808,23 @@ AC_ARG_ENABLE(exact-address, AC_HELP_STRING([--enable-exact-address], [Enable re
         fi])
 
 dnl -- start cache --
-AC_ARG_ENABLE(hcache, AC_HELP_STRING([--enable-hcache], [Enable header caching]),
-[if test x$enableval = xyes; then
+use_qdbm=no
+AC_ARG_ENABLE(hcache, AC_HELP_STRING([--enable-hcache],
+  [Enable header caching]))
+AC_ARG_WITH(qdbm, AC_HELP_STRING([--without-qdbm],
+  [Don't use qdbm even if it is available]))
+AC_ARG_WITH(gdbm, AC_HELP_STRING([--without-gdbm],
+  [Don't use gdbm even if it is available]))
+AC_ARG_WITH(bdb, AC_HELP_STRING([--with-bdb[=DIR]],
+  [Use BerkeleyDB4 if gdbm is not available]), ac_bdb_prefix=$withval)
+
+if test x$enable_hcache = xyes
+then
     AC_DEFINE(USE_HCACHE, 1, [Enable header caching])
     MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS hcache.o"
 
     OLDCPPFLAGS="$CPPFLAGS"
+    OLDLDFLAGS="$LDFLAGS"
     OLDLIBS="$LIBS"
 
     need_md5="yes"
@@ -821,8 +832,7 @@ AC_ARG_ENABLE(hcache, AC_HELP_STRING([--enable-hcache], [Enable header caching])
     dnl hcachever.sh tool for calculating struct digest
     AC_CHECK_PROGS([MD5], [md5 md5sum openssl], [none])
 
-    use_qdbm=no
-    AC_ARG_WITH(qdbm, AC_HELP_STRING([--without-qdbm], [Don't use qdbm even if it is available]))
+    dnl -- QDBM --
     if test "$with_qdbm" != "no"
     then
       if test -n "$with_qdbm" && test "$with_qdbm" != "yes"
@@ -841,7 +851,12 @@ AC_ARG_ENABLE(hcache, AC_HELP_STRING([--enable-hcache], [Enable header caching])
 
       saved_LIBS="$LIBS"
       AC_CHECK_HEADERS(villa.h)
-      AC_CHECK_LIB(qdbm, vlopen, [MUTTLIBS="$MUTTLIBS -lqdbm"; use_qdbm=yes])
+      AC_CHECK_LIB(qdbm, vlopen,
+        [MUTTLIBS="$MUTTLIBS -lqdbm"
+         AC_DEFINE(HAVE_QDBM, 1, [QDBM Support])
+         use_qdbm=yes],
+        [CPPFLAGS="$OLDCPPFLAGS"
+         LDFLAGS="$OLDLDFLAGS"])
       LIBS="$saved_LIBS"
       if test -n "$with_qdbm" && test "$use_qdbm" != yes
       then
@@ -849,24 +864,33 @@ AC_ARG_ENABLE(hcache, AC_HELP_STRING([--enable-hcache], [Enable header caching])
       fi
     fi
 
-    AC_ARG_WITH(gdbm, AC_HELP_STRING([--without-gdbm], [Don't use gdbm even if it is available]))
-    if test x$with_gdbm != xno && test $use_qdbm != yes; then
+    dnl -- GDBM --
+    if test x$with_gdbm != xno && test $use_qdbm != yes
+    then
         if test "$with_gdbm" != "yes"
         then
           CPPFLAGS="$CPPFLAGS -I$with_gdbm/include"
           LDFLAGS="$LDFLAGS -L$with_gdbm/lib"
         fi
-        CPPFLAGS="$OLDCPPFLAGS"
-        LIBS="$OLDLIBS -lgdbm";
+        saved_LIBS="$LIBS"
+        LIBS="$LIBS -lgdbm"
         AC_CACHE_CHECK(for gdbm_open, ac_cv_gdbmopen,[
             ac_cv_gdbmopen=no
             AC_TRY_LINK([#include <gdbm.h>],[gdbm_open(0,0,0,0,0);],[ac_cv_gdbmopen=yes])
         ])
+        LIBS="$saved_LIBS"
+        if test "$ac_cv_gdbmopen" = yes
+        then
+          AC_DEFINE(HAVE_GDBM, 1, [GDBM Support])
+          MUTTLIBS="$MUTTLIBS -lgdbm"
+        elif test -n "$with_gdbm"
+        then
+          AC_MSG_ERROR([GDBM could not be used. Check config.log for details.])
+        fi
     fi
 
+    dnl -- BDB --
     ac_bdb_prefix=yes
-    AC_ARG_WITH(bdb, AC_HELP_STRING([--with-bdb[=DIR]], [Use BerkeleyDB4 if gdbm is not available]),
-        ac_bdb_prefix=$withval)
     if test x$ac_bdb_prefix != xno && test x$ac_cv_gdbmopen != xyes && test $use_qdbm != yes; then
         test x$ac_bdb_prefix = xyes && ac_bdb_prefix="$mutt_cv_prefix /opt/csw/bdb4 /opt /usr/local /usr"
         for d in $ac_bdb_prefix; do
@@ -907,27 +931,22 @@ AC_ARG_ENABLE(hcache, AC_HELP_STRING([--enable-hcache], [Enable header caching])
             done
             test x$BDB_LIB != x && break
         done
-        if test x$ac_cv_dbcreate = xyes; then
+        if test x$ac_cv_dbcreate = xyes
+        then
             AC_MSG_RESULT(yes)
+            CPPFLAGS="$OLDCPPFLAGS -I$BDB_INCLUDE_DIR"
+            LIBS="$OLDLIBS -L$BDB_LIB_DIR -l$BDB_LIB"
+            AC_DEFINE(HAVE_DB4, 1, [Berkeley DB4 Support])
         else
             AC_MSG_RESULT(no)
         fi
     fi
 
-    if test "$use_qdbm" = yes; then
-        AC_DEFINE(HAVE_QDBM, 1, [QDBM Support])
-    elif test x$ac_cv_gdbmopen = xyes; then
-        CPPFLAGS="$OLDCPPFLAGS"
-        LIBS="$OLDLIBS -lgdbm";
-        AC_DEFINE(HAVE_GDBM, 1, [GDBM Support])
-    elif test x$ac_cv_dbcreate = xyes; then
-        CPPFLAGS="$OLDCPPFLAGS -I$BDB_INCLUDE_DIR"
-        LIBS="$OLDLIBS -L$BDB_LIB_DIR -l$BDB_LIB"
-        AC_DEFINE(HAVE_DB4, 1, [Berkeley DB4 Support])
-    else
+    if test x$use_qdbm != xyes && test x$ac_cv_gdbmopen != xyes && test x$ac_cv_dbcreate != xyes
+    then
         AC_MSG_ERROR([You need QDBM, GDBM or Berkeley DB4 for hcache])
     fi
-fi])
+fi
 dnl -- end cache --
 
 if test "$need_md5" = "yes"