RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: jbj@rpm5.org
Module: rpm Date: 03-Dec-2007 21:13:14
Branch: HEAD Handle: 2007120320131300
Modified files:
rpm CHANGES
rpm/lib package.c rpmchecksig.c
rpm/rpmio rpmio_internal.h
Log:
- rpm.org: Eliminate copy-paste fd digest stealing, stuff into
rpmio_internal.
Summary:
Revision Changes Path
1.1926 +1 -0 rpm/CHANGES
2.195 +1 -23 rpm/lib/package.c
1.203 +1 -25 rpm/lib/rpmchecksig.c
2.93 +33 -0 rpm/rpmio/rpmio_internal.h
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.1925 -r1.1926 CHANGES
--- rpm/CHANGES 3 Dec 2007 19:23:33 -0000 1.1925
+++ rpm/CHANGES 3 Dec 2007 20:13:13 -0000 1.1926
@@ -1,4 +1,5 @@
5.0a4 -> 5.0b1:
+ - rpm.org: Eliminate copy-paste fd digest stealing, stuff into rpmio_internal.
- rpm.org: Add doxygen grouping to rpmte methods.
- rpm.org: Add doxygen grouping to rpmds methods.
- rpm.org: Lose the useless rpmrc python stuff, group macro handling to rpmmacro-py.
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/package.c
============================================================================
$ cvs diff -u -r2.194 -r2.195 package.c
--- rpm/lib/package.c 26 Nov 2007 21:05:56 -0000 2.194
+++ rpm/lib/package.c 3 Dec 2007 20:13:13 -0000 2.195
@@ -100,7 +100,6 @@
rpmRC rc = RPMRC_FAIL; /* assume failure */
rpmop opsave = memset(alloca(sizeof(*opsave)), 0, sizeof(*opsave));
int xx;
- int i;
if (hdrp) *hdrp = NULL;
@@ -335,28 +334,7 @@
}
/* XXX Steal the digest-in-progress from the file handle. */
- for (i = fd->ndigests - 1; i >= 0; i--) {
- FDDIGEST_t fddig = fd->digests + i;
- if (fddig->hashctx != NULL)
- switch (fddig->hashalgo) {
- case PGPHASHALGO_MD5:
- dig->md5ctx = fddig->hashctx;
- fddig->hashctx = NULL;
- /*@switchbreak@*/ break;
- case PGPHASHALGO_SHA1:
- case PGPHASHALGO_RIPEMD160:
-#if defined(HAVE_BEECRYPT_API_H)
- case PGPHASHALGO_SHA256:
- case PGPHASHALGO_SHA384:
- case PGPHASHALGO_SHA512:
-#endif
- dig->sha1ctx = fddig->hashctx;
- fddig->hashctx = NULL;
- /*@switchbreak@*/ break;
- default:
- /*@switchbreak@*/ break;
- }
- }
+ fdStealDigest(fd, dig);
break;
}
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmchecksig.c
============================================================================
$ cvs diff -u -r1.202 -r1.203 rpmchecksig.c
--- rpm/lib/rpmchecksig.c 26 Nov 2007 21:05:56 -0000 1.202
+++ rpm/lib/rpmchecksig.c 3 Dec 2007 20:13:13 -0000 1.203
@@ -784,7 +784,6 @@
ssize_t count;
rpmRC rc;
int xx;
- int i;
dig->nbytes = 0;
@@ -849,30 +848,7 @@
}
/* XXX Steal the digest-in-progress from the file handle. */
- for (i = fd->ndigests - 1; i >= 0; i--) {
- FDDIGEST_t fddig = fd->digests + i;
- if (fddig->hashctx != NULL)
- switch (fddig->hashalgo) {
- case PGPHASHALGO_MD5:
-assert(dig->md5ctx == NULL);
- dig->md5ctx = fddig->hashctx;
- fddig->hashctx = NULL;
- /*@switchbreak@*/ break;
- case PGPHASHALGO_SHA1:
- case PGPHASHALGO_RIPEMD160:
-#if defined(HAVE_BEECRYPT_API_H)
- case PGPHASHALGO_SHA256:
- case PGPHASHALGO_SHA384:
- case PGPHASHALGO_SHA512:
-#endif
-assert(dig->sha1ctx == NULL);
- dig->sha1ctx = fddig->hashctx;
- fddig->hashctx = NULL;
- /*@switchbreak@*/ break;
- default:
- /*@switchbreak@*/ break;
- }
- }
+ fdStealDigest(fd, dig);
rc = RPMRC_OK; /* XXX unnecessary */
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/rpmio_internal.h
============================================================================
$ cvs diff -u -r2.92 -r2.93 rpmio_internal.h
--- rpm/rpmio/rpmio_internal.h 23 Nov 2007 07:06:01 -0000 2.92
+++ rpm/rpmio/rpmio_internal.h 3 Dec 2007 20:13:13 -0000 2.93
@@ -698,6 +698,39 @@
fd->ndigests++; /* convert index to count */
}
+/** \ingroup rpmio
+ */
+/*@unused@*/ static inline
+void fdStealDigest(FD_t fd, pgpDig dig)
+ /*@modifies fd, dig @*/
+{
+ int i;
+ for (i = fd->ndigests - 1; i >= 0; i--) {
+ FDDIGEST_t fddig = fd->digests + i;
+ if (fddig->hashctx != NULL)
+ switch (fddig->hashalgo) {
+ case PGPHASHALGO_MD5:
+assert(dig->md5ctx == NULL);
+ dig->md5ctx = fddig->hashctx;
+ fddig->hashctx = NULL;
+ break;
+ case PGPHASHALGO_SHA1:
+ case PGPHASHALGO_RIPEMD160:
+#if defined(HAVE_BEECRYPT_API_H)
+ case PGPHASHALGO_SHA256:
+ case PGPHASHALGO_SHA384:
+ case PGPHASHALGO_SHA512:
+#endif
+assert(dig->sha1ctx == NULL);
+ dig->sha1ctx = fddig->hashctx;
+ fddig->hashctx = NULL;
+ break;
+ default:
+ break;
+ }
+ }
+}
+
/*@-shadow@*/
/** \ingroup rpmio
*/
@@ .
Received on Mon Dec 3 21:13:14 2007