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

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

diff --git a/CHANGELOG b/CHANGELOG
index 0492116..15b5134 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,9 +1,10 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
-- Fix "null" instead of empty string on messages list in IE10 (#1489145)
+- Fix error when there's no writeable addressbook source (#1489162)
 - Fix zipdownload plugin issue with filenames charset (#1489156)
 - Fix so non-inline images aren't skipped on forward (#1489150)
+- Fix "null" instead of empty string on messages list in IE10 (#1489145)
 - Fix legacy options handling
 - Fix so bounces addresses in Sender headers are skipped on Reply-All (#1489011)
 - Fix bug where serialized strings were truncated in PDO::quote() (#1489142)
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index c35c24f..19a89b8 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 b01989a..dbb6d21 100644
--- a/program/steps/mail/show.inc
+++ b/program/steps/mail/show.inc
@@ -255,9 +255,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