From bd65c786cda881d42ee0856b8d25ff665a6a240c Mon Sep 17 00:00:00 2001 From: Jim Nelson Date: Thu, 17 Nov 2011 17:07:40 -0800 Subject: [PATCH] Fixes Gee hard assertion due to FETCH error: Closes #4392 Not doing proper bounds checking with ListParameter.get methods. --- src/engine/imap/message/imap-parameter.vala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/engine/imap/message/imap-parameter.vala b/src/engine/imap/message/imap-parameter.vala index 9016fa6b..57143de3 100644 --- a/src/engine/imap/message/imap-parameter.vala +++ b/src/engine/imap/message/imap-parameter.vala @@ -153,10 +153,13 @@ public class Geary.Imap.ListParameter : Geary.Imap.Parameter { } public new Parameter? get(int index) { - return list.get(index); + return (index < list.size) ? list.get(index) : null; } public Parameter get_required(int index) throws ImapError { + if (index >= list.size) + throw new ImapError.TYPE_ERROR("No parameter at index %d", index); + Parameter? param = list.get(index); if (param == null) throw new ImapError.TYPE_ERROR("No parameter at index %d", index);