alexk / rpms / rpm

Forked from rpms/rpm 2 years ago
Clone
0b2921
From 2ec0832287bd1443ebf336f8a98293f30bfa2036 Mon Sep 17 00:00:00 2001
0b2921
Message-Id: <2ec0832287bd1443ebf336f8a98293f30bfa2036.1554983205.git.pmatilai@redhat.com>
0b2921
From: Panu Matilainen <pmatilai@redhat.com>
0b2921
Date: Mon, 18 Mar 2019 15:24:54 +0200
0b2921
Subject: [PATCH 1/3] Make rpmsign exit values more consistent with our other
0b2921
 tools
0b2921
0b2921
rpmPkgSign*() return -1 for failure, which is not that helpful when
0b2921
returned to shell and the way it was counted could easily wrap around
0b2921
when signing multiple packages. Return number of failures similarly to
0b2921
how rpm -q and frieds does, avoid overflows and xargs special value 255.
0b2921
---
0b2921
 rpmsign.c | 8 +++++---
0b2921
 1 file changed, 5 insertions(+), 3 deletions(-)
0b2921
0b2921
diff --git a/rpmsign.c b/rpmsign.c
0b2921
index ae86f666d..1a5cd59c2 100644
0b2921
--- a/rpmsign.c
0b2921
+++ b/rpmsign.c
0b2921
@@ -134,7 +134,8 @@ static int doSign(poptContext optCon, struct rpmSignArgs *sargs)
0b2921
     const char *arg;
0b2921
     rc = 0;
0b2921
     while ((arg = poptGetArg(optCon)) != NULL) {
0b2921
-	rc += rpmPkgSign(arg, sargs);
0b2921
+	if (rpmPkgSign(arg, sargs) < 0)
0b2921
+	    rc++;
0b2921
     }
0b2921
 
0b2921
 exit:
0b2921
@@ -175,7 +176,8 @@ int main(int argc, char *argv[])
0b2921
     case MODE_DELSIGN:
0b2921
 	ec = 0;
0b2921
 	while ((arg = poptGetArg(optCon)) != NULL) {
0b2921
-	    ec += rpmPkgDelSign(arg, &sargs);
0b2921
+	    if (rpmPkgDelSign(arg, &sargs) < 0)
0b2921
+		ec++;
0b2921
 	}
0b2921
 	break;
0b2921
     case MODE_NONE:
0b2921
@@ -188,5 +190,5 @@ int main(int argc, char *argv[])
0b2921
 
0b2921
 exit:
0b2921
     rpmcliFini(optCon);
0b2921
-    return ec;
0b2921
+    return RETVAL(ec);
0b2921
 }
0b2921
-- 
0b2921
2.20.1
0b2921