- for (a = 0; a < sizeof(int) - 1; a++) /* skip superfluous octets */
- if (!((tmp.c[a] == 0 && !(tmp.c[a+1] & 0X80)) ||
- (tmp.c[a] == 0XFF && (tmp.c[a+1] & 0X80))))
- break;
- if ((len = sizeof(int) - a) > maxlen)
- return -1;
- memcpy(b, tmp.c + a, len);
- b += len;
- if (ber_enclen(lenpos, len, 1, 1) != 1)
- return -1;
+ for (a = 0; a < (int) sizeof(int) - 1; a++) /* skip superfluous octets */
+ if (!((tmp.c[a] == 0 && !(tmp.c[a+1] & 0X80)) ||
+ (tmp.c[a] == 0XFF && (tmp.c[a+1] & 0X80))))
+ break;
+ len = sizeof(int) - a;
+ if (ber_enclen(o, len, 1, 1) != 1)
+ return -1;
+ if (odr_write(o, (unsigned char*) tmp.c + a, len) < 0)
+ return -1;
+#ifdef ODR_DEBUG