/* fixMain.c */ #include "any.h" int main () { Content content; PhoneNumber phoneNumber; BUF_TYPE buf; char *save; AsnLen length = 0; AsnLen bytesDecoded = 0; Content decodedContent; ENV_TYPE env; if (setjmp(env) != 0) { printf ("setjmp setting problem\n"); return 1; } phoneNumber.country = 91; phoneNumber.area = 80; phoneNumber.number = 5502001; content.type.octs = id_phoneNumber.octs; content.type.octetLen = id_phoneNumber.octetLen; content.content.value = (PhoneNumber *)&phoneNumber; InitNibbleMem (512, 512); InitAnyBug(); buf = (BUF_TYPE) malloc (sizeof(char *)); if (!buf) return 1; *buf = (char *) malloc (1024); if (! *buf) return 1; save = *buf + 1024;; *buf = save; length += DEncContentContent (buf, &content); printf ("saved ptr: %p, *buf: %p, diff: %u, length: %u\n", save, *buf, save - *buf, length); /* tagId0 and elmtLen0 fields are removed * DDecContentContent (buf, 0, 0, &decodedContent, &bytesDecoded, env); */ /* call with the changed prototype */ DDecContentContent (buf, &decodedContent, &bytesDecoded, env); printf ("saved ptr: %p, *buf: %p, buf: %p\n", save, *buf, buf); printf ("bytes decoded: %u\n", bytesDecoded); }