]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
fts-solr: Don't crash if fts_solr setting is invalid.
authorTimo Sirainen <tss@iki.fi>
Tue, 23 Apr 2013 10:47:46 +0000 (13:47 +0300)
committerTimo Sirainen <tss@iki.fi>
Tue, 23 Apr 2013 10:47:46 +0000 (13:47 +0300)
src/plugins/fts-solr/fts-backend-solr-old.c
src/plugins/fts-solr/fts-backend-solr.c

index 9fd8094fc2a18aa9694183fcd3912d2bcc6d064e..1845849da6bada068bfebad7cb3fd899e7d34af9 100644 (file)
@@ -229,11 +229,14 @@ fts_backend_solr_init(struct fts_backend *_backend, const char **error_r)
 {
        struct solr_fts_backend *backend = (struct solr_fts_backend *)_backend;
        struct fts_solr_user *fuser = FTS_SOLR_USER_CONTEXT(_backend->ns->user);
-       const struct fts_solr_settings *set = &fuser->set;
        const char *str;
 
+       if (fuser == NULL) {
+               *error_r = "Invalid fts_solr setting";
+               return -1;
+       }
        if (solr_conn == NULL) {
-               if (solr_connection_init(set->url, set->debug,
+               if (solr_connection_init(fuser->set.url, fuser->set.debug,
                                         &solr_conn, error_r) < 0)
                        return -1;
        }
index f7b335f789aa46fde39271ed23385225e2480456..8af17073832786646535336928b2d5224484d68a 100644 (file)
@@ -158,10 +158,13 @@ static int
 fts_backend_solr_init(struct fts_backend *_backend, const char **error_r)
 {
        struct fts_solr_user *fuser = FTS_SOLR_USER_CONTEXT(_backend->ns->user);
-       const struct fts_solr_settings *set = &fuser->set;
 
+       if (fuser == NULL) {
+               *error_r = "Invalid fts_solr setting";
+               return -1;
+       }
        if (solr_conn == NULL) {
-               if (solr_connection_init(set->url, set->debug,
+               if (solr_connection_init(fuser->set.url, fuser->set.debug,
                                         &solr_conn, error_r) < 0)
                        return -1;
        }