pyldb: ldb_msg_richcmp: avoid one intransitive compare
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>
Fri, 15 Mar 2024 02:47:55 +0000 (15:47 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 20 Mar 2024 23:42:34 +0000 (23:42 +0000)
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
lib/ldb/pyldb.c

index 42badbc2e3721dc93f59fba06234dd5594e39007..60ec4d299c434200bb10c3bc97cf31f4c9166ba1 100644 (file)
@@ -4037,9 +4037,11 @@ static PyObject *py_ldb_msg_richcmp(PyLdbMessageObject *py_msg1,
                }
        }
 
-       ret = msg1->num_elements - msg2->num_elements;
-       if (ret != 0) {
-               return richcmp(ret, op);
+       if (msg1->num_elements > msg2->num_elements) {
+               return richcmp(1, op);
+       }
+       if (msg1->num_elements < msg2->num_elements) {
+               return richcmp(-1, op);
        }
 
        for (i = 0; i < msg1->num_elements; i++) {