extern int debugsw;
-extern int endian; /* mhmisc.c */
-
extern pid_t xpid; /* mhshowsbr.c */
/* cache policies */
{
int bitno, cc, digested;
int fd, len, skip, own_ct_fp = 0;
- unsigned long bits;
- unsigned char value, *b, *b1, *b2, *b3;
+ uint32_t bits;
+ unsigned char value, b;
unsigned char *cp, *ep;
char buffer[BUFSIZ];
/* sbeck -- handle suffixes */
CE ce;
MD5_CTX mdContext;
- b = (unsigned char *) &bits;
- b1 = &b[endian > 0 ? 1 : 2];
- b2 = &b[endian > 0 ? 2 : 1];
- b3 = &b[endian > 0 ? 3 : 0];
-
ce = ct->c_cefile;
if (ce->ce_fp) {
fseek (ce->ce_fp, 0L, SEEK_SET);
bits |= value << bitno;
test_end:
if ((bitno -= 6) < 0) {
- putc ((char) *b1, ce->ce_fp);
+ b = (bits >> 16) & 0xff;
+ putc ((char) b, ce->ce_fp);
if (digested)
- MD5Update (&mdContext, b1, 1);
+ MD5Update (&mdContext, &b, 1);
if (skip < 2) {
- putc ((char) *b2, ce->ce_fp);
+ b = (bits >> 8) & 0xff;
+ putc ((char) b, ce->ce_fp);
if (digested)
- MD5Update (&mdContext, b2, 1);
+ MD5Update (&mdContext, &b, 1);
if (skip < 1) {
- putc ((char) *b3, ce->ce_fp);
+ b = bits & 0xff;
+ putc ((char) b, ce->ce_fp);
if (digested)
- MD5Update (&mdContext, b3, 1);
+ MD5Update (&mdContext, &b, 1);
}
}
readDigest (CT ct, char *cp)
{
int bitno, skip;
- unsigned long bits;
+ uint32_t bits;
char *bp = cp;
unsigned char *dp, value, *ep;
- unsigned char *b, *b1, *b2, *b3;
- b = (unsigned char *) &bits,
- b1 = &b[endian > 0 ? 1 : 2],
- b2 = &b[endian > 0 ? 2 : 1],
- b3 = &b[endian > 0 ? 3 : 0];
bitno = 18;
bits = 0L;
skip = 0;
if ((bitno -= 6) < 0) {
if (dp + (3 - skip) > ep)
goto invalid_digest;
- *dp++ = *b1;
+ *dp++ = (bits >> 16) & 0xff;
if (skip < 2) {
- *dp++ = *b2;
+ *dp++ = (bits >> 8) & 0xff;
if (skip < 1)
- *dp++ = *b3;
+ *dp++ = bits & 0xff;
}
bitno = 18;
bits = 0L;