summaryrefslogtreecommitdiffstats
path: root/import-layers/yocto-poky/meta/recipes-extended/cracklib/cracklib/0001-packlib.c-support-dictionary-byte-order-dependent.patch
diff options
context:
space:
mode:
Diffstat (limited to 'import-layers/yocto-poky/meta/recipes-extended/cracklib/cracklib/0001-packlib.c-support-dictionary-byte-order-dependent.patch')
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/cracklib/cracklib/0001-packlib.c-support-dictionary-byte-order-dependent.patch339
1 files changed, 0 insertions, 339 deletions
diff --git a/import-layers/yocto-poky/meta/recipes-extended/cracklib/cracklib/0001-packlib.c-support-dictionary-byte-order-dependent.patch b/import-layers/yocto-poky/meta/recipes-extended/cracklib/cracklib/0001-packlib.c-support-dictionary-byte-order-dependent.patch
deleted file mode 100644
index adbe7dfff..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/cracklib/cracklib/0001-packlib.c-support-dictionary-byte-order-dependent.patch
+++ /dev/null
@@ -1,339 +0,0 @@
-From 8a6e43726ad0ae41bd1cc2c248d91deb31459357 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@cn.fujitsu.com>
-Date: Tue, 9 Jun 2015 11:11:48 +0900
-Subject: [PATCH] packlib.c: support dictionary byte order dependent
-
-The previous dict files are NOT byte-order independent, in fact they are
-probably ARCHITECTURE SPECIFIC.
-Create the dict files in big endian, and convert to host endian while
-load them. This could fix the endian issue on multiple platform.
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-Upstream-Status: Pending
-
-We can't use the endian.h, htobe* and be*toh functions because they are
-not available on older versions of glibc, such as that found in RHEL
-5.9.
-
-Change to checking endian and directly calling bswap_* as defined in
-byteswap.h.
-
-Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
-
-Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
----
- lib/packlib.c | 214 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
- 1 file changed, 210 insertions(+), 4 deletions(-)
-
-diff --git a/lib/packlib.c b/lib/packlib.c
-index f851424..3aac805 100644
---- a/lib/packlib.c
-+++ b/lib/packlib.c
-@@ -16,6 +16,12 @@
- #ifdef HAVE_STDINT_H
- #include <stdint.h>
- #endif
-+
-+#ifndef _BSD_SOURCE
-+#define _BSD_SOURCE /* See feature_test_macros(7) */
-+#endif
-+#include <endian.h>
-+#include <byteswap.h>
- #include "packer.h"
-
- static const char vers_id[] = "packlib.c : v2.3p2 Alec Muffett 18 May 1993";
-@@ -45,6 +51,185 @@ typedef struct
- char data_get[NUMWORDS][MAXWORDLEN];
- } PWDICT64;
-
-+enum{
-+ en_is32,
-+ en_is64
-+};
-+
-+static int
-+IheaderHostToBigEndian(char *pHeader, int nBitType)
-+{
-+ if (nBitType == en_is64 && __BYTE_ORDER == __LITTLE_ENDIAN)
-+ {
-+ struct pi_header64 *pHeader64 = (struct pi_header64*)pHeader;
-+
-+ pHeader64->pih_magic = bswap_64(pHeader64->pih_magic);
-+ pHeader64->pih_numwords = bswap_64(pHeader64->pih_numwords);
-+ pHeader64->pih_blocklen = bswap_16(pHeader64->pih_blocklen);
-+ pHeader64->pih_pad = bswap_16(pHeader64->pih_pad);
-+
-+#if DEBUG
-+ printf("Header64: magic %x, numwords %x, blocklen %x, pad %x\n",
-+ pHeader64->pih_magic, pHeader64->pih_numwords,
-+ pHeader64->pih_blocklen, pHeader64->pih_pad);
-+#endif
-+ }
-+ else if (nBitType == en_is32 && __BYTE_ORDER == __LITTLE_ENDIAN)
-+ {
-+ struct pi_header *pHeader32 = (struct pi_header*)pHeader;
-+
-+ pHeader32->pih_magic = bswap_32(pHeader32->pih_magic);
-+ pHeader32->pih_numwords = bswap_32(pHeader32->pih_numwords);
-+ pHeader32->pih_blocklen = bswap_16(pHeader32->pih_blocklen);
-+ pHeader32->pih_pad = bswap_16(pHeader32->pih_pad);
-+
-+#if DEBUG
-+ printf("Header32: magic %x, numwords %x, blocklen %x, pad %x\n",
-+ pHeader32->pih_magic, pHeader32->pih_numwords,
-+ pHeader32->pih_blocklen, pHeader32->pih_pad);
-+#endif
-+ }
-+ else if (__BYTE_ORDER == __LITTLE_ENDIAN)
-+ {
-+ fprintf(stderr, "Neither 32 or 64: %d\n", nBitType);
-+ return (-1);
-+ }
-+
-+ return 0;
-+}
-+
-+static int
-+IheaderBigEndianToHost(char *pHeader, int nBitType)
-+{
-+ if (nBitType == en_is64 && __BYTE_ORDER == __LITTLE_ENDIAN)
-+ {
-+ struct pi_header64 *pHeader64 = (struct pi_header64*)pHeader;
-+
-+ pHeader64->pih_magic = bswap_64(pHeader64->pih_magic);
-+ pHeader64->pih_numwords = bswap_64(pHeader64->pih_numwords);
-+ pHeader64->pih_blocklen = bswap_16(pHeader64->pih_blocklen);
-+ pHeader64->pih_pad = bswap_16(pHeader64->pih_pad);
-+
-+#if DEBUG
-+ printf("Header64: magic %x, numwords %x, blocklen %x, pad %x\n",
-+ pHeader64->pih_magic, pHeader64->pih_numwords,
-+ pHeader64->pih_blocklen, pHeader64->pih_pad);
-+#endif
-+ }
-+ else if (nBitType == en_is32 && __BYTE_ORDER == __LITTLE_ENDIAN)
-+ {
-+ struct pi_header *pHeader32 = (struct pi_header*)pHeader;
-+
-+ pHeader32->pih_magic = bswap_32(pHeader32->pih_magic);
-+ pHeader32->pih_numwords = bswap_32(pHeader32->pih_numwords);
-+ pHeader32->pih_blocklen = bswap_16(pHeader32->pih_blocklen);
-+ pHeader32->pih_pad = bswap_16(pHeader32->pih_pad);
-+
-+#if DEBUG
-+ printf("Header32: magic %x, numwords %x, blocklen %x, pad %x\n",
-+ pHeader32->pih_magic, pHeader32->pih_numwords,
-+ pHeader32->pih_blocklen, pHeader32->pih_pad);
-+#endif
-+ }
-+ else if (__BYTE_ORDER == __LITTLE_ENDIAN)
-+ {
-+ fprintf(stderr, "Neither 32 or 64: %d\n", nBitType);
-+ return (-1);
-+ }
-+
-+ return 0;
-+}
-+
-+static int
-+HwmsHostToBigEndian(char *pHwms, int nLen,int nBitType)
-+{
-+ int i = 0;
-+
-+ if (nBitType == en_is64 && __BYTE_ORDER == __LITTLE_ENDIAN)
-+ {
-+ uint64_t *pHwms64 = (uint64_t*)pHwms;
-+
-+ for (i = 0; i < nLen / sizeof(uint64_t); i++)
-+ {
-+ *pHwms64 = bswap_64(*pHwms64);
-+ *pHwms64++;
-+ }
-+
-+ }
-+ else if (nBitType == en_is32 && __BYTE_ORDER == __LITTLE_ENDIAN)
-+ {
-+ uint32_t *pHwms32 = (uint32_t*)pHwms;
-+
-+ for (i = 0; i < nLen / sizeof(uint32_t); i++)
-+ {
-+ *pHwms32 = bswap_32(*pHwms32);
-+ *pHwms32++;
-+ }
-+
-+ }
-+ else if (__BYTE_ORDER == __LITTLE_ENDIAN)
-+ {
-+ fprintf(stderr, "Neither 32 or 64: %d\n", nBitType);
-+ return (-1);
-+ }
-+
-+#if DEBUG
-+ for (i = 0; i < nLen; i+=8)
-+ {
-+ printf("hwms%s: %02X %02X %02X %02X %02X %02X %02X %02X\n",
-+ nBitType==en_is64?"64":"32", pHwms[i+0]&0xFF, pHwms[i+1]&0xFF,
-+ pHwms[i+2]&0xFF, pHwms[i+3]&0xFF, pHwms[i+4]&0xFF,
-+ pHwms[i+5]&0xFF, pHwms[i+6]&0xFF, pHwms[i+7]&0xFF);
-+ }
-+#endif
-+
-+ return 0;
-+}
-+
-+static int
-+HwmsBigEndianToHost(char *pHwms, int nLen, int nBitType)
-+{
-+ int i = 0;
-+
-+ if (nBitType == en_is64 && __BYTE_ORDER == __LITTLE_ENDIAN)
-+ {
-+ uint64_t *pHwms64 = (uint64_t*)pHwms;
-+
-+ for (i = 0; i < nLen / sizeof(uint64_t); i++)
-+ {
-+ *pHwms64++ = bswap_64(*pHwms64);
-+ }
-+
-+ }
-+ else if (nBitType == en_is32 && __BYTE_ORDER == __LITTLE_ENDIAN)
-+ {
-+ uint32_t *pHwms32 = (uint32_t*)pHwms;
-+
-+ for (i = 0; i < nLen / sizeof(uint32_t); i++)
-+ {
-+ *pHwms32 = bswap_32(*pHwms32);
-+ *pHwms32++;
-+ }
-+
-+ }
-+ else if (__BYTE_ORDER == __LITTLE_ENDIAN)
-+ {
-+ fprintf(stderr, "Neither 32 or 64: %d\n", nBitType);
-+ return (-1);
-+ }
-+
-+#if DEBUG
-+ for (i = 0; i < nLen; i+=8)
-+ {
-+ printf("hwms%s: %02X %02X %02X %02X %02X %02X %02X %02X\n",
-+ nBitType==en_is64?"64":"32", pHwms[i+0]&0xFF, pHwms[i+1]&0xFF,
-+ pHwms[i+2]&0xFF, pHwms[i+3]&0xFF, pHwms[i+4]&0xFF,
-+ pHwms[i+5]&0xFF, pHwms[i+6]&0xFF, pHwms[i+7]&0xFF);
-+ }
-+#endif
-+
-+ return 0;
-+}
-
- static int
- _PWIsBroken64(FILE *ifp)
-@@ -57,6 +242,7 @@ _PWIsBroken64(FILE *ifp)
- return 0;
- }
-
-+ IheaderBigEndianToHost((char *) &pdesc64.header, en_is64);
- return (pdesc64.header.pih_magic == PIH_MAGIC);
- }
-
-@@ -149,7 +335,11 @@ PWOpen(prefix, mode)
- pdesc.header.pih_blocklen = NUMWORDS;
- pdesc.header.pih_numwords = 0;
-
-- fwrite((char *) &pdesc.header, sizeof(pdesc.header), 1, ifp);
-+ struct pi_header tmpheader32;
-+
-+ memcpy(&tmpheader32, &pdesc.header, sizeof(pdesc.header));
-+ IheaderHostToBigEndian((char *) &tmpheader32, en_is32);
-+ fwrite((char *) &tmpheader32, sizeof(tmpheader32), 1, ifp);
- } else
- {
- pdesc.flags &= ~PFOR_WRITE;
-@@ -173,6 +363,7 @@ PWOpen(prefix, mode)
- return NULL;
- }
-
-+ IheaderBigEndianToHost((char *) &pdesc.header, en_is32);
- if ((pdesc.header.pih_magic == 0) || (pdesc.header.pih_numwords == 0))
- {
- /* uh-oh. either a broken "64-bit" file or a garbage file. */
-@@ -195,6 +386,7 @@ PWOpen(prefix, mode)
- }
- return NULL;
- }
-+ IheaderBigEndianToHost((char *) &pdesc64.header, en_is64);
- if (pdesc64.header.pih_magic != PIH_MAGIC)
- {
- /* nope, not "64-bit" after all */
-@@ -290,6 +482,7 @@ PWOpen(prefix, mode)
- {
- pdesc.flags &= ~PFOR_USEHWMS;
- }
-+ HwmsBigEndianToHost((char*)pdesc64.hwms, sizeof(pdesc64.hwms), en_is64);
- for (i = 0; i < sizeof(pdesc.hwms) / sizeof(pdesc.hwms[0]); i++)
- {
- pdesc.hwms[i] = pdesc64.hwms[i];
-@@ -299,6 +492,7 @@ PWOpen(prefix, mode)
- {
- pdesc.flags &= ~PFOR_USEHWMS;
- }
-+ HwmsBigEndianToHost((char*)pdesc.hwms, sizeof(pdesc.hwms), en_is32);
- #if DEBUG
- for (i=1; i<=0xff; i++)
- {
-@@ -332,7 +526,11 @@ PWClose(pwp)
- return (-1);
- }
-
-- if (!fwrite((char *) &pwp->header, sizeof(pwp->header), 1, pwp->ifp))
-+ struct pi_header tmpheader32;
-+
-+ memcpy(&tmpheader32, &pwp->header, sizeof(pwp->header));
-+ IheaderHostToBigEndian((char *) &tmpheader32, en_is32);
-+ if (!fwrite((char *) &tmpheader32, sizeof(tmpheader32), 1, pwp->ifp))
- {
- fprintf(stderr, "index magic fwrite failed\n");
- return (-1);
-@@ -351,7 +549,12 @@ PWClose(pwp)
- printf("hwm[%02x] = %d\n", i, pwp->hwms[i]);
- #endif
- }
-- fwrite(pwp->hwms, 1, sizeof(pwp->hwms), pwp->wfp);
-+
-+ PWDICT tmp_pwp;
-+
-+ memcpy(&tmp_pwp, pwp, sizeof(PWDICT));
-+ HwmsHostToBigEndian(tmp_pwp.hwms, sizeof(tmp_pwp.hwms), en_is32);
-+ fwrite(tmp_pwp.hwms, 1, sizeof(tmp_pwp.hwms), pwp->wfp);
- }
- }
-
-@@ -405,7 +608,8 @@ PutPW(pwp, string)
-
- datum = (uint32_t) ftell(pwp->dfp);
-
-- fwrite((char *) &datum, sizeof(datum), 1, pwp->ifp);
-+ uint32_t tmpdatum = (__BYTE_ORDER == __LITTLE_ENDIAN) ? bswap_32(datum) : datum;
-+ fwrite((char *) &tmpdatum, sizeof(tmpdatum), 1, pwp->ifp);
-
- fputs(pwp->data_put[0], pwp->dfp);
- putc(0, pwp->dfp);
-@@ -464,6 +668,7 @@ GetPW(pwp, number)
- perror("(index fread failed)");
- return NULL;
- }
-+ datum64 = (__BYTE_ORDER == __LITTLE_ENDIAN) ? bswap_64(datum64) : datum64;
- datum = datum64;
- } else {
- if (fseek(pwp->ifp, sizeof(struct pi_header) + (thisblock * sizeof(uint32_t)), 0))
-@@ -477,6 +682,7 @@ GetPW(pwp, number)
- perror("(index fread failed)");
- return NULL;
- }
-+ datum = (__BYTE_ORDER == __LITTLE_ENDIAN) ? bswap_32(datum) : datum;
- }
-
- int r = 1;
---
-1.8.4.2
-
OpenPOWER on IntegriCloud