From ae80b5a309be69a47b438e2dc1e342735b5e22aa Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Tue, 11 Jun 2013 06:08:44 -0400
Subject: [PATCH] Fix error when there's no writeable addressbook source (#1489162)

---
 CHANGELOG                   |    1 +
 program/include/rcmail.php  |    5 +++++
 program/steps/mail/show.inc |   10 +++++++---
 3 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index a4aff5c..3964a58 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Fix error when there's no writeable addressbook source (#1489162)
 - Add option show_real_foldernames to disable localization of special folders
 - Fix zipdownload plugin issue with filenames charset (#1489156)
 - Fix database cache expunge issues (#1489149)
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 22d0811..fd625ba 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -228,6 +228,11 @@
     }
 
     if (!$contacts) {
+      // there's no default, just return
+      if ($default) {
+        return null;
+      }
+
       self::raise_error(array(
         'code' => 700, 'type' => 'php',
         'file' => __FILE__, 'line' => __LINE__,
diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc
index d8d4372..59f4d55 100644
--- a/program/steps/mail/show.inc
+++ b/program/steps/mail/show.inc
@@ -275,9 +275,13 @@
   if ($email) {
     // @TODO: search in all address books?
     $CONTACTS = $RCMAIL->get_address_book(-1, true);
-    $existing = $CONTACTS->search('email', $email, true, false);
-    if ($existing->count)
-      return true;
+
+    if (is_object($CONTACTS)) {
+      $existing = $CONTACTS->search('email', $email, true, false);
+      if ($existing->count) {
+        return true;
+      }
+    }
   }
 
   return false;

--
Gitblit v1.9.1