4 #define BITOP(a,b,op) \
5 ((a)[(size_t)(b)/(8*sizeof *(a))] op (size_t)1<<((size_t)(b)%(8*sizeof *(a))))
7 int dn_expand(unsigned char *b, unsigned char *pz, unsigned char *p, unsigned char *s, int outlen)
9 /* Remember jump destinations to detect loops and abort */
10 size_t seen[512/8/sizeof(size_t)] = { 0 };
11 unsigned char *sz = s + outlen;
12 if (pz-b > 512) return -1;
16 int j = (p[0]&1) | p[1];
17 if (BITOP(seen, j, &)) return -1;
21 if (p+*p+1>=pz || s+*p>=sz) return -1;