# HG changeset patch
# Parent 26edaf6ea10b8db2ed07da3e4ad9bee03077de84
Fix endless loop on exhaustion of completion category pool
diff -r 26edaf6ea10b mcabber/mcabber/compl.c
--- a/mcabber/mcabber/compl.c Mon Jul 30 22:39:17 2012 +0200
+++ b/mcabber/mcabber/compl.c Wed Aug 08 12:15:20 2012 +0300
@@ -97,10 +97,11 @@
// as it is likely to change in future.
guint compl_new_category(void)
{
+ const guint maxcat = 8 * sizeof (registered_cats);
guint i = 0;
- while ((registered_cats >> i) & 1)
+ while ((registered_cats >> i) & 1 && i < maxcat)
i++;
- if (i >= 8 * sizeof (registered_cats))
+ if (i >= maxcat)
return 0;
else {
guint64 id = 1 << i;