From fb563710c80e8244511efc9ca8541bea256474a5 Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Mar 25 2020 08:22:21 +0000 Subject: Make rpmsign exit values more consistent with our other tools rpmPkgSign*() return -1 for failure, which is not that helpful when returned to shell and the way it was counted could easily wrap around when signing multiple packages. Return number of failures similarly to how rpm -q and frieds does, avoid overflows and xargs special value 255. --- diff --git a/rpmsign.c b/rpmsign.c index ae86f66..1a5cd59 100644 --- a/rpmsign.c +++ b/rpmsign.c @@ -134,7 +134,8 @@ static int doSign(poptContext optCon, struct rpmSignArgs *sargs) const char *arg; rc = 0; while ((arg = poptGetArg(optCon)) != NULL) { - rc += rpmPkgSign(arg, sargs); + if (rpmPkgSign(arg, sargs) < 0) + rc++; } exit: @@ -175,7 +176,8 @@ int main(int argc, char *argv[]) case MODE_DELSIGN: ec = 0; while ((arg = poptGetArg(optCon)) != NULL) { - ec += rpmPkgDelSign(arg, &sargs); + if (rpmPkgDelSign(arg, &sargs) < 0) + ec++; } break; case MODE_NONE: @@ -188,5 +190,5 @@ int main(int argc, char *argv[]) exit: rpmcliFini(optCon); - return ec; + return RETVAL(ec); }