# HG changeset patch # User Myhailo Danylenko # Date 1350230810 -7200 # Node ID dac609275117e34b57f90b51afe0dec3871dcd44 # Parent c7d40b9b2bb94365f98adc62e96a7bf20aed23b1 Fix endless loop on exhaustion of completion category pool diff -r c7d40b9b2bb9 -r dac609275117 mcabber/mcabber/compl.c --- a/mcabber/mcabber/compl.c Sun Oct 14 17:56:34 2012 +0200 +++ b/mcabber/mcabber/compl.c Sun Oct 14 18:06:50 2012 +0200 @@ -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;