Updates.
[yaz-moved-to-github.git] / odr / ber_oct.c
index 41c568b..9b5a2fd 100644 (file)
@@ -4,32 +4,16 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: ber_oct.c,v $
- * Revision 1.1  1995-02-02 16:21:52  quinn
+ * Revision 1.2  1995-02-02 20:38:50  quinn
+ * Updates.
+ *
+ * Revision 1.1  1995/02/02  16:21:52  quinn
  * First kick.
  *
  */
 
 #include <odr.h>
 
-static int more_chunks(ODR o, unsigned char *base, int len)
-{
-    if (!len)
-       return 0;
-    if (len < 0) /* indefinite length */
-    {
-       if (*o->bp == 0 && *(o->bp + 1) == 0)
-       {
-           o->bp += 2;
-           o->left -= 2;
-           return 0;
-       }
-       else
-           return 1;
-    }
-    else
-        return o->bp - base < len;
-}
-
 int ber_octetstring(ODR o, ODR_OCT *p, int cons)
 {
     int res, len;
@@ -45,7 +29,7 @@ int ber_octetstring(ODR o, ODR_OCT *p, int cons)
            if (cons)       /* fetch component strings */
            {
                base = o->bp;
-               while (more_chunks(o, base, len))
+               while (odp_more_chunks(o, base, len))
                    if (!odr_octetstring(o, &p, 0))
                        return 0;
                return 1;
@@ -57,7 +41,7 @@ int ber_octetstring(ODR o, ODR_OCT *p, int cons)
                return 1;
            if (len > p->size - p->len)
            {
-               c = nalloc(o, p->size += len);
+               c = nalloc(o, p->size += len + 1);
                if (p->len)
                    memcpy(c, p->buf, p->len);
                p->buf = c;