rpm/fixsizeforbigendian.diff

29 lines
966 B
Diff

--- ./build/pack.c.orig 2014-10-06 13:05:52.801204141 +0000
+++ ./build/pack.c 2014-10-06 13:06:19.815077722 +0000
@@ -290,6 +290,8 @@ static rpmRC generateSignature(char *SHA
rpmRC rc = RPMRC_OK;
char *reservedSpace;
int spaceSize = 0;
+ uint32_t size32 = (uint32_t)size;
+ uint32_t payloadSize32 = (uint32_t)payloadSize;
/* Prepare signature */
sig = rpmNewSignature();
@@ -322,14 +324,14 @@ static rpmRC generateSignature(char *SHA
td.tag = payloadtag;
td.count = 1;
td.type = typetag;
- td.data = &payloadSize;
+ td.data = typetag == RPM_INT32_TYPE ? &payloadSize32 : &payloadSize;
headerPut(sig, &td, HEADERPUT_DEFAULT);
rpmtdReset(&td);
td.tag = sizetag;
td.count = 1;
td.type = typetag;
- td.data = &size;
+ td.data = typetag == RPM_INT32_TYPE ? &size32 : &size;
headerPut(sig, &td, HEADERPUT_DEFAULT);
spaceSize = rpmExpandNumeric("%{__gpg_reserved_space}");