Return empty set on invalid PEP devicelist

This commit is contained in:
Andreas Straub 2015-07-05 22:53:34 +02:00
parent 4cc4e81b8e
commit 835584ae3b
2 changed files with 20 additions and 19 deletions

View File

@ -1,5 +1,6 @@
package eu.siacs.conversations.crypto.axolotl;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.Base64;
import android.util.Log;
@ -638,7 +639,7 @@ public class AxolotlService {
return ownDeviceId;
}
public void registerDevices(final Jid jid, final Set<Integer> deviceIds) {
public void registerDevices(final Jid jid, @NonNull final Set<Integer> deviceIds) {
for(Integer i:deviceIds) {
Log.d(Config.LOGTAG, "Adding Device ID:"+ jid + ":"+i);
}

View File

@ -1,5 +1,6 @@
package eu.siacs.conversations.parser;
import android.support.annotation.NonNull;
import android.util.Base64;
import android.util.Log;
@ -96,26 +97,25 @@ public class IqParser extends AbstractParser implements OnIqPacketReceived {
return items.findChild("item");
}
@NonNull
public Set<Integer> deviceIds(final Element item) {
Set<Integer> deviceIds = new HashSet<>();
if (item == null) {
return null;
}
final Element list = item.findChild("list");
if(list == null) {
return null;
}
for(Element device : list.getChildren()) {
if(!device.getName().equals("device")) {
continue;
}
try {
Integer id = Integer.valueOf(device.getAttribute("id"));
deviceIds.add(id);
} catch (NumberFormatException e) {
Log.e(Config.LOGTAG, "Encountered nvalid <device> node in PEP:" + device.toString()
+ ", skipping...");
continue;
if (item != null) {
final Element list = item.findChild("list");
if (list != null) {
for (Element device : list.getChildren()) {
if (!device.getName().equals("device")) {
continue;
}
try {
Integer id = Integer.valueOf(device.getAttribute("id"));
deviceIds.add(id);
} catch (NumberFormatException e) {
Log.e(Config.LOGTAG, "Encountered nvalid <device> node in PEP:" + device.toString()
+ ", skipping...");
continue;
}
}
}
}
return deviceIds;