- case ODR_ENCODE:
- *(o->bp++) = 0X00;
- o->left--;
- fprintf(stderr, "[NULL]\n");
- return 1;
- case ODR_DECODE:
- if (*(o->bp++) != 0X00)
- return 0;
- o->left--;
- fprintf(stderr, "[NULL]\n");
- return 1;
- case ODR_PRINT: return 1;
- default: return 0;
+ case ODR_ENCODE:
+ if (odr_putc(o, 0X00) < 0)
+ return 0;
+#ifdef ODR_DEBUG
+ fprintf(stderr, "[NULL]\n");
+#endif
+ return 1;
+ case ODR_DECODE:
+ if (odr_max(o) < 1)
+ {
+ odr_seterror(o, OPROTO, 39);
+ return 0;
+ }
+ if (*(o->bp++) != 0X00)
+ {
+ odr_seterror(o, OPROTO, 12);
+ return 0;
+ }
+#ifdef ODR_DEBUG
+ fprintf(stderr, "[NULL]\n");
+#endif
+ return 1;
+ case ODR_PRINT: return 1;
+ default: odr_seterror(o, OOTHER, 13); return 0;