From: root Date: Thu, 22 Feb 1996 01:35:34 +0000 (+0000) Subject: better error checking during builds X-Git-Tag: rpm-4.4-release~5346 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=379473e17efa6cc4f6fe744524fcff5b2a586c4e;p=platform%2Fupstream%2Frpm.git better error checking during builds CVS patchset: 389 CVS date: 1996/02/22 01:35:34 --- diff --git a/build/pack.c b/build/pack.c index 045ccc9..dfe5d76 100644 --- a/build/pack.c +++ b/build/pack.c @@ -106,6 +106,8 @@ int generateRPM(char *name, /* name-version-release */ archiveTemp = tempnam("/usr/tmp", "rpmbuild"); fd = open(archiveTemp, O_WRONLY|O_CREAT|O_TRUNC, 0644); if (cpio_gzip(header, fd, stempdir, &archiveSize)) { + close(fd); + unlink(archiveTemp); return 1; } close(fd); @@ -128,13 +130,21 @@ int generateRPM(char *name, /* name-version-release */ /* Now write the lead */ fd = open(filename, O_WRONLY|O_CREAT|O_TRUNC, 0644); if (writeMagic(fd, name, type, sigtype)) { + close(fd); + unlink(sigtarget); + unlink(filename); return 1; } /* Generate the signature */ message(MESS_VERBOSE, "Generating signature: %d\n", sigtype); fflush(stdout); - makeSignature(sigtarget, sigtype, fd, passPhrase); + if (makeSignature(sigtarget, sigtype, fd, passPhrase)) { + close(fd); + unlink(sigtarget); + unlink(filename); + return 1; + } /* Append the header and archive */ ifd = open(sigtarget, O_RDONLY); @@ -1045,7 +1055,10 @@ int packageBinaries(Spec s, char *passPhrase) /**** Make the RPM ****/ - generateRPM(name, RPMLEAD_BINARY, outHeader, NULL, passPhrase); + if (generateRPM(name, RPMLEAD_BINARY, outHeader, NULL, passPhrase)) { + /* Build failed */ + return 1; + } freeHeader(outHeader); pr = pr->next; @@ -1163,7 +1176,10 @@ int packageSource(Spec s, char *passPhrase) sprintf(fullname, "%s-%s-%s", s->name, version, release); message(MESS_VERBOSE, "Source Packaging: %s\n", fullname); - generateRPM(fullname, RPMLEAD_SOURCE, outHeader, tempdir, passPhrase); + if (generateRPM(fullname, RPMLEAD_SOURCE, outHeader, + tempdir, passPhrase)) { + return 1; + } /**** Now clean up ****/