https://fedorahosted.org/sssd/ticket/1551

This is only cure for the symptom. I created a ticket to track finding the actual cause of it:
https://fedorahosted.org/sssd/ticket/1576
From de7a51bb66659e0ae69a01890fe36f918068387c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pavel=20B=C5=99ezina?= <pbrez...@redhat.com>
Date: Thu, 11 Oct 2012 10:37:38 +0200
Subject: [PATCH] nss_cmd_retpwent(): do not go into infinite loop if n < 0

https://fedorahosted.org/sssd/ticket/1551
---
 src/responder/nss/nsssrv_cmd.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c
index 370c3d29914e43ecda9909389ae230d322f37d42..26a347365e40085d8745805757d69b67c246709d 100644
--- a/src/responder/nss/nsssrv_cmd.c
+++ b/src/responder/nss/nsssrv_cmd.c
@@ -1618,6 +1618,14 @@ static int nss_cmd_retpwent(struct cli_ctx *cctx, int num)
 
         if (!n) break;
 
+        if (n < 0) {
+            DEBUG(SSSDBG_CRIT_FAILURE, ("BUG: Negative difference"
+                  "[%d - %d = %d]\n", pdom->res->count, cctx->pwent_cur, n));
+            DEBUG(SSSDBG_CRIT_FAILURE, ("Domain: %d (total %d)\n",
+                                        cctx->pwent_dom_idx, pctx->num));
+            break;
+        }
+
         if (n > num) n = num;
 
         msgs = &(pdom->res->msgs[cctx->pwent_cur]);
-- 
1.7.11.4

_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/sssd-devel

Reply via email to