From f71730972165095ceac691c997d55b4c05e99de2 Mon Sep 17 00:00:00 2001 From: Marcin Cieslak Date: Fri, 13 Feb 2015 21:01:09 -0600 Subject: [PATCH] Reset done in inc_done() to prevent endless loop when setegid() fails (in which case adios() is called, which calls done()). --- uip/inc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/uip/inc.c b/uip/inc.c index b4572824..7d128420 100644 --- a/uip/inc.c +++ b/uip/inc.c @@ -137,7 +137,7 @@ static gid_t return_gid; #define TRYDROPGROUPPRIVS() DROPGROUPPRIVS() #define DROPGROUPPRIVS() \ if (setegid(getgid()) != 0) { \ - adios ("setegid", "unable to set group to %ld", (long) getgid()); \ + adios ("setegid", "unable to restore group to %ld", (long) getgid()); \ } #define GETGROUPPRIVS() \ if (setegid(return_gid) != 0) { \ @@ -959,6 +959,7 @@ skip: static void inc_done (int status) { + done = exit; if (packfile && pd != NOTOK) mbx_close (packfile, pd); if (locked) -- 2.56.0