]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
Don't read past the last list entry in _add_priority, doing so adds algorithms that...
authorTim Kosse <tim.kosse@filezilla-project.org>
Thu, 15 Nov 2012 18:57:01 +0000 (19:57 +0100)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Thu, 15 Nov 2012 22:11:51 +0000 (23:11 +0100)
Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
lib/gnutls_priority.c

index b6649ca6705cf113b84444fbffa527259c4a7ad4..03ef83bf3cac79b07cad71308d05fddd430ca5f8 100644 (file)
@@ -89,11 +89,11 @@ _set_priority (priority_st * st, const int *list)
 inline static void
 _add_priority (priority_st * st, const int *list)
 {
-  int num = 0, i, j, init;
+  int num, i, j, init;
 
   init = i = st->algorithms;
 
-  while (list[num] != 0)
+  for (num=0;list[num]!=0;++num)
     {
       if (i+1 > MAX_ALGOS)
         {
@@ -104,14 +104,15 @@ _add_priority (priority_st * st, const int *list)
         {
           if (st->priority[j] == (unsigned)list[num])
             {
-              num++;
-              continue;
+              break;
             }
         }
 
-      st->priority[i++] = list[num];
-      st->algorithms++;
-      num++;
+      if (j == init)
+        {
+          st->priority[i++] = list[num];
+          st->algorithms++;
+        }
     }
     
   return;