| changeset 840: | 58e512ea83a0 |
|---|---|
| parent 839: | 191bfdc5a6d0 |
| child 841: | ec5eba23c839 |
| author: | Simon Horman <horms@verge.net.au> |
| date: | Sat Jul 10 09:07:36 2010 +0900 (7 weeks ago) |
| files: | perdition/managesieve.c perdition/options.h |
| description: | managesieve: non-NULL default capability Perdition exits with a segmentation fault very early on when run in managesieve mode. This is because the default capability is NULL and the capability code expects non-NULL. This patch addresses the problem by setting the default capability to a non-NULL value. Reported-by: Filipe Carvalho <filipec@fe.up.pt> Tested-by: Filipe Carvalho <filipec@fe.up.pt> Signed-off-by: Simon Horman <horms@verge.net.au> |
1--- a/perdition/managesieve.c Tue Jul 06 10:58:05 2010 +0900 2+++ b/perdition/managesieve.c Sat Jul 10 09:07:36 2010 +0900 3@@ -229,12 +229,8 @@ 4 char *managesieve_capability(flag_t tls_flags, flag_t tls_state) 5 { 6 flag_t mode; 7- char *capability = NULL; 8+ char *capability; 9 char *old_capability; 10- 11- capability = opt.managesieve_capability; 12- if (!strcmp(capability, PERDITION_PROTOCOL_DEPENDANT)) 13- capability = MANAGESIEVE_DEFAULT_CAPA; 14 15 if ((tls_flags & SSL_MODE_TLS_LISTEN) && 16 !(tls_state & SSL_MODE_TLS_LISTEN)) 17@@ -242,7 +238,7 @@ 18 else 19 mode = PROTOCOL_C_DEL; 20 21- capability = protocol_capability(mode, capability, 22+ capability = protocol_capability(mode, opt.managesieve_capability, 23 MANAGESIEVE_CAPA_STARTTLS, 24 MANAGESIEVE_CAPA_DELIMITER); 25 if (!capability) {
1.1--- a/perdition/options.h Tue Jul 06 10:58:05 2010 +0900 1.2+++ b/perdition/options.h Sat Jul 10 09:07:36 2010 +0900 1.3@@ -35,6 +35,8 @@ 1.4 #include <vanessa_adt.h> 1.5 #include <popt.h> 1.6 1.7+#include "managesieve_write.h" 1.8+ 1.9 #ifdef HAVE_CONFIG_H 1.10 #include "config.h" 1.11 #endif 1.12@@ -130,7 +132,7 @@ 1.13 #define DEFAULT_LOG_FACILITY "mail" 1.14 #define DEFAULT_LOGIN_DISABLED 0 1.15 #define DEFAULT_LOWER_CASE STATE_NONE 1.16-#define DEFAULT_MANAGESIEVE_CAPABILITY NULL 1.17+#define DEFAULT_MANAGESIEVE_CAPABILITY MANAGESIEVE_DEFAULT_CAPA 1.18 #define DEFAULT_MAP_LIB_OPT NULL 1.19 #define DEFAULT_NO_BIND_BANNER 0 1.20 #define DEFAULT_NO_DAEMON 0