From e60860148cbe9e97cd898712b63302da3df82ed0 Mon Sep 17 00:00:00 2001
From: Thomas Tanghus <thomas@tanghus.net>
Date: Thu, 12 Jan 2012 18:04:23 +0100
Subject: [PATCH] Don't chunk_split encoded image string. Don't return json
 error but null if card can't be parsed. Small check for non-parsable card in
 index.php.

---
 apps/contacts/index.php   | 12 +++++-------
 apps/contacts/lib/app.php |  9 ++++-----
 lib/image.php             |  2 +-
 3 files changed, 10 insertions(+), 13 deletions(-)

diff --git a/apps/contacts/index.php b/apps/contacts/index.php
index 6f65ac1c60..b179d9bbfe 100644
--- a/apps/contacts/index.php
+++ b/apps/contacts/index.php
@@ -44,19 +44,17 @@ OC_App::setActiveNavigationEntry( 'contacts_index' );
 $id = isset( $_GET['id'] ) ? $_GET['id'] : null;
 $details = array();
 
-// FIXME: This cannot work..?
 if(is_null($id) && count($contacts) > 0) {
 	$id = $contacts[0]['id'];
 }
+$vcard = null;
+$details = null;
 if(!is_null($id)) {
 	$vcard = OC_Contacts_App::getContactVCard($id);
-	$details = OC_Contacts_VCard::structureContact($vcard);
+	if(!is_null($vcard) {
+		$details = OC_Contacts_VCard::structureContact($vcard);
+	}
 }
-// if( !is_null($id)/* || count($contacts)*/){
-// 	if(is_null($id)) $id = $contacts[0]['id'];
-// 	$vcard = OC_Contacts_App::getContactVCard($id);
-// 	$details = OC_Contacts_VCard::structureContact($vcard);
-// }
 
 // Include Style and Script
 OC_Util::addScript('contacts','interface');
diff --git a/apps/contacts/lib/app.php b/apps/contacts/lib/app.php
index 907ce82c76..00a830d5e5 100644
--- a/apps/contacts/lib/app.php
+++ b/apps/contacts/lib/app.php
@@ -56,15 +56,14 @@ class OC_Contacts_App{
 		return $card;
 	}
 
+	/**
+	 * @brief Gets the VCard as text
+	 * @returns The card or null if the card could not be parsed.
+	 */
 	public static function getContactVCard($id){
 		$card = self::getContactObject( $id );
 
 		$vcard = OC_VObject::parse($card['carddata']);
-		// Check if the card is valid
-		if(is_null($vcard)){
-			OC_JSON::error(array('data' => array( 'message' => self::$l10n->t('vCard could not be read.'))));
-			exit();
-		}
 		return $vcard;
 	}
 
diff --git a/lib/image.php b/lib/image.php
index bdfa1fefd7..70ad3f5969 100644
--- a/lib/image.php
+++ b/lib/image.php
@@ -196,7 +196,7 @@ class OC_Image {
 		if (!$res) {
 			OC_Log::write('core','OC_Image::_string. Error writing image',OC_Log::ERROR);
 		}
-		return chunk_split(base64_encode(ob_get_clean()));
+		return base64_encode(ob_get_clean());
 	}
 
 	/**
-- 
GitLab