From 9575de9caeebc45b4a042f0153b62cb8127acaca Mon Sep 17 00:00:00 2001 From: Yoshi Huang Date: Tue, 23 Jul 2013 14:34:30 +0800 Subject: [PATCH] Bug 895960 - Part 1: Patch. r=hsinyi --- dom/system/gonk/ril_worker.js | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/dom/system/gonk/ril_worker.js b/dom/system/gonk/ril_worker.js index 78112560986..ed5ee068521 100644 --- a/dom/system/gonk/ril_worker.js +++ b/dom/system/gonk/ril_worker.js @@ -10974,21 +10974,17 @@ let ICCRecordHelper = { } Buf.readStringDelimiter(strLen); - if (pbrTlvs.length === 0) { - let error = onerror || debug; - error("Cannot access Phonebook."); - return; + if (pbrTlvs.length > 0) { + let pbr = ICCUtilsHelper.parsePbrTlvs(pbrTlvs); + // EF_ADN is mandatory if and only if DF_PHONEBOOK is present. + if (!pbr.adn) { + let error = onerror || debug; + error("Cannot access ADN."); + return; + } + pbrs.push(pbr); } - let pbr = ICCUtilsHelper.parsePbrTlvs(pbrTlvs); - // EF_ADN is mandatory if and only if DF_PHONEBOOK is present. - if (!pbr.adn) { - let error = onerror || debug; - error("Cannot access ADN."); - return; - } - pbrs.push(pbr); - if (options.p1 < options.totalRecords) { ICCIOHelper.loadNextRecord(options); } else { @@ -12414,6 +12410,11 @@ let ICCContactHelper = { let gotPbrCb = function gotPbrCb(pbrs) { let pbrIndex = Math.floor(contact.recordId / ICC_MAX_LINEAR_FIXED_RECORDS); let pbr = pbrs[pbrIndex]; + if (!pbr) { + let error = onerror || debug; + error("Cannot access Phonebook."); + return; + } this.updatePhonebookSet(pbr, contact, onsuccess, onerror); }.bind(this);