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: 31-Jul-2007 19:08:57
Branch: HEAD Handle: 2007073118085601
Modified files:
rpm CHANGES
rpm/lib package.c
Log:
- query w/o lead/sigh w newmagic (using --nolead --nosigh --newmagic).
Summary:
Revision Changes Path
1.1536 +1 -0 rpm/CHANGES
2.143 +22 -0 rpm/lib/package.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.1535 -r1.1536 CHANGES
--- rpm/CHANGES 31 Jul 2007 16:47:42 -0000 1.1535
+++ rpm/CHANGES 31 Jul 2007 17:08:56 -0000 1.1536
@@ -1,4 +1,5 @@
4.5 -> 5.0:
+ - jbj: query w/o lead/sigh w newmagic (using --nolead --nosigh --newmagic).
- jbj: query of packages w/o lead/sigh (using --nolead --nosigh).
- jbj: query of packages w/o lead (using --nolead).
- jbj: --newmagic enabler to add new signature/metadata magic to headers.
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/package.c
============================================================================
$ cvs diff -u -r2.142 -r2.143 package.c
--- rpm/lib/package.c 31 Jul 2007 16:47:42 -0000 2.142
+++ rpm/lib/package.c 31 Jul 2007 17:08:57 -0000 2.143
@@ -41,12 +41,23 @@
extern int _nolead;
extern int _nosigh;
+extern int _newmagic;
/*@unchecked@*/
static unsigned char header_magic[8] = {
0x8e, 0xad, 0xe8, 0x01, 0x00, 0x00, 0x00, 0x00
};
+/*@observer@*/ /*@unchecked@*/
+static unsigned char sigh_magic[8] = {
+ 0x8e, 0xad, 0xe8, 0x3e, 0x00, 0x00, 0x00, 0x00
+};
+
+/*@observer@*/ /*@unchecked@*/
+static unsigned char meta_magic[8] = {
+ 0x8e, 0xad, 0xe8, 0x3f, 0x00, 0x00, 0x00, 0x00
+};
+
/**
* Alignment needs (and sizeof scalars types) for internal rpm data types.
*/
@@ -682,10 +693,21 @@
_("hdr size(%d): BAD, read returned %d\n"), (int)sizeof(block), xx);
goto exit;
}
+
+if (_newmagic) {
+ if (!( !memcmp(block, header_magic, sizeof(header_magic))
+ || !memcmp(block, meta_magic, sizeof(meta_magic))
+ )) {
+ (void) snprintf(buf, sizeof(buf), _("hdr magic: BAD\n"));
+ goto exit;
+ }
+} else {
if (memcmp(block, header_magic, sizeof(header_magic))) {
(void) snprintf(buf, sizeof(buf), _("hdr magic: BAD\n"));
goto exit;
}
+}
+
/*@-boundsread@*/
il = ntohl(block[2]);
/*@=boundsread@*/
@@ .
Received on Tue Jul 31 19:08:57 2007