[BACK]Return to aldap.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ldap

Diff for /src/usr.bin/ldap/aldap.c between version 1.8 and 1.9

version 1.8, 2019/09/10 14:35:32 version 1.9, 2019/10/24 12:39:26
Line 74 
Line 74 
                 tls_free(al->tls);                  tls_free(al->tls);
         }          }
         close(al->fd);          close(al->fd);
         ber_free(&al->ber);          ober_free(&al->ber);
         evbuffer_free(al->buf);          evbuffer_free(al->buf);
         free(al);          free(al);
   
Line 90 
Line 90 
                 return NULL;                  return NULL;
         a->buf = evbuffer_new();          a->buf = evbuffer_new();
         a->fd = fd;          a->fd = fd;
         ber_set_application(&a->ber, aldap_application);          ober_set_application(&a->ber, aldap_application);
   
         return a;          return a;
 }  }
Line 130 
Line 130 
         size_t len, done;          size_t len, done;
         ssize_t error, wrote;          ssize_t error, wrote;
   
         len = ber_calc_len(root);          len = ober_calc_len(root);
         error = ber_write_elements(&ldap->ber, root);          error = ober_write_elements(&ldap->ber, root);
         ber_free_elements(root);          ober_free_elements(root);
         if (error == -1)          if (error == -1)
                 return -1;                  return -1;
   
         ber_get_writebuf(&ldap->ber, &ptr);          ober_get_writebuf(&ldap->ber, &ptr);
         done = 0;          done = 0;
         data = ptr;          data = ptr;
         while (len > 0) {          while (len > 0) {
Line 163 
Line 163 
 {  {
         struct ber_element *root = NULL, *ber;          struct ber_element *root = NULL, *ber;
   
         if ((root = ber_add_sequence(NULL)) == NULL)          if ((root = ober_add_sequence(NULL)) == NULL)
                 goto fail;                  goto fail;
   
         ber = ber_printf_elements(root, "d{tst", ++ldap->msgid, BER_CLASS_APP,          ber = ober_printf_elements(root, "d{tst", ++ldap->msgid, BER_CLASS_APP,
             LDAP_REQ_EXTENDED, LDAP_STARTTLS_OID, BER_CLASS_CONTEXT, 0);              LDAP_REQ_EXTENDED, LDAP_STARTTLS_OID, BER_CLASS_CONTEXT, 0);
         if (ber == NULL) {          if (ber == NULL) {
                 ldap->err = ALDAP_ERR_OPERATION_FAILED;                  ldap->err = ALDAP_ERR_OPERATION_FAILED;
Line 179 
Line 179 
         return (ldap->msgid);          return (ldap->msgid);
 fail:  fail:
         if (root != NULL)          if (root != NULL)
                 ber_free_elements(root);                  ober_free_elements(root);
   
         ldap->err = ALDAP_ERR_OPERATION_FAILED;          ldap->err = ALDAP_ERR_OPERATION_FAILED;
         return (-1);          return (-1);
Line 195 
Line 195 
         if (bindcred == NULL)          if (bindcred == NULL)
                 bindcred = "";                  bindcred = "";
   
         if ((root = ber_add_sequence(NULL)) == NULL)          if ((root = ober_add_sequence(NULL)) == NULL)
                 goto fail;                  goto fail;
   
         elm = ber_printf_elements(root, "d{tdsst", ++ldap->msgid, BER_CLASS_APP,          elm = ober_printf_elements(root, "d{tdsst", ++ldap->msgid, BER_CLASS_APP,
             LDAP_REQ_BIND, VERSION, binddn, bindcred, BER_CLASS_CONTEXT,              LDAP_REQ_BIND, VERSION, binddn, bindcred, BER_CLASS_CONTEXT,
             LDAP_AUTH_SIMPLE);              LDAP_AUTH_SIMPLE);
         if (elm == NULL)          if (elm == NULL)
Line 213 
Line 213 
         return (ldap->msgid);          return (ldap->msgid);
 fail:  fail:
         if (root != NULL)          if (root != NULL)
                 ber_free_elements(root);                  ober_free_elements(root);
   
         ldap->err = ALDAP_ERR_OPERATION_FAILED;          ldap->err = ALDAP_ERR_OPERATION_FAILED;
         return (-1);          return (-1);
Line 224 
Line 224 
 {  {
         struct ber_element *root = NULL, *elm;          struct ber_element *root = NULL, *elm;
   
         if ((root = ber_add_sequence(NULL)) == NULL)          if ((root = ober_add_sequence(NULL)) == NULL)
                 goto fail;                  goto fail;
         elm = ber_printf_elements(root, "d{t", ++ldap->msgid, BER_CLASS_APP,          elm = ober_printf_elements(root, "d{t", ++ldap->msgid, BER_CLASS_APP,
             LDAP_REQ_UNBIND_30);              LDAP_REQ_UNBIND_30);
         if (elm == NULL)          if (elm == NULL)
                 goto fail;                  goto fail;
Line 240 
Line 240 
         return (ldap->msgid);          return (ldap->msgid);
 fail:  fail:
         if (root != NULL)          if (root != NULL)
                 ber_free_elements(root);                  ober_free_elements(root);
   
         ldap->err = ALDAP_ERR_OPERATION_FAILED;          ldap->err = ALDAP_ERR_OPERATION_FAILED;
   
Line 255 
Line 255 
         struct ber_element *root = NULL, *ber, *c;          struct ber_element *root = NULL, *ber, *c;
         int i;          int i;
   
         if ((root = ber_add_sequence(NULL)) == NULL)          if ((root = ober_add_sequence(NULL)) == NULL)
                 goto fail;                  goto fail;
   
         ber = ber_printf_elements(root, "d{t", ++ldap->msgid, BER_CLASS_APP,          ber = ober_printf_elements(root, "d{t", ++ldap->msgid, BER_CLASS_APP,
             LDAP_REQ_SEARCH);              LDAP_REQ_SEARCH);
         if (ber == NULL) {          if (ber == NULL) {
                 ldap->err = ALDAP_ERR_OPERATION_FAILED;                  ldap->err = ALDAP_ERR_OPERATION_FAILED;
Line 266 
Line 266 
         }          }
   
         c = ber;          c = ber;
         ber = ber_printf_elements(ber, "sEEddb", basedn, (long long)scope,          ber = ober_printf_elements(ber, "sEEddb", basedn, (long long)scope,
                                  (long long)LDAP_DEREF_NEVER, sizelimit,                                   (long long)LDAP_DEREF_NEVER, sizelimit,
                                  timelimit, typesonly);                                   timelimit, typesonly);
         if (ber == NULL) {          if (ber == NULL) {
Line 279 
Line 279 
                 goto fail;                  goto fail;
         }          }
   
         if ((ber = ber_add_sequence(ber)) == NULL)          if ((ber = ober_add_sequence(ber)) == NULL)
                 goto fail;                  goto fail;
         if (attrs != NULL)          if (attrs != NULL)
                 for (i = 0; attrs[i] != NULL; i++) {                  for (i = 0; attrs[i] != NULL; i++) {
                         if ((ber = ber_add_string(ber, attrs[i])) == NULL)                          if ((ber = ober_add_string(ber, attrs[i])) == NULL)
                                 goto fail;                                  goto fail;
                 }                  }
   
Line 301 
Line 301 
   
 fail:  fail:
         if (root != NULL)          if (root != NULL)
                 ber_free_elements(root);                  ober_free_elements(root);
   
         return (-1);          return (-1);
 }  }
Line 316 
Line 316 
   
         c.br_wbuf = NULL;          c.br_wbuf = NULL;
   
         ber = ber_add_sequence(NULL);          ber = ober_add_sequence(NULL);
   
         if (page == NULL) {          if (page == NULL) {
                 if (ber_printf_elements(ber, "ds", 50, "") == NULL)                  if (ober_printf_elements(ber, "ds", 50, "") == NULL)
                         goto fail;                          goto fail;
         } else {          } else {
                 if (ber_printf_elements(ber, "dx", 50, page->cookie,                  if (ober_printf_elements(ber, "dx", 50, page->cookie,
                             page->cookie_len) == NULL)                              page->cookie_len) == NULL)
                         goto fail;                          goto fail;
         }          }
   
         if ((len = ber_write_elements(&c, ber)) < 1)          if ((len = ober_write_elements(&c, ber)) < 1)
                 goto fail;                  goto fail;
         if (ber_printf_elements(elm, "{t{sx", 2, 0, LDAP_PAGED_OID,          if (ober_printf_elements(elm, "{t{sx", 2, 0, LDAP_PAGED_OID,
                                 c.br_wbuf, (size_t)len) == NULL)                                  c.br_wbuf, (size_t)len) == NULL)
                 goto fail;                  goto fail;
   
         ber_free_elements(ber);          ober_free_elements(ber);
         ber_free(&c);          ober_free(&c);
         return len;          return len;
 fail:  fail:
         if (ber != NULL)          if (ber != NULL)
                 ber_free_elements(ber);                  ober_free_elements(ber);
         ber_free(&c);          ober_free(&c);
   
         return (-1);          return (-1);
 }  }
Line 377 
Line 377 
                 }                  }
   
                 if (EVBUFFER_LENGTH(ldap->buf) > 0) {                  if (EVBUFFER_LENGTH(ldap->buf) > 0) {
                         ber_set_readbuf(&ldap->ber, EVBUFFER_DATA(ldap->buf),                          ober_set_readbuf(&ldap->ber, EVBUFFER_DATA(ldap->buf),
                             EVBUFFER_LENGTH(ldap->buf));                              EVBUFFER_LENGTH(ldap->buf));
                         errno = 0;                          errno = 0;
                         m->msg = ber_read_elements(&ldap->ber, NULL);                          m->msg = ober_read_elements(&ldap->ber, NULL);
                         if (errno != 0 && errno != ECANCELED) {                          if (errno != 0 && errno != ECANCELED) {
                                 goto parsefail;                                  goto parsefail;
                         }                          }
Line 393 
Line 393 
   
         LDAP_DEBUG("message", m->msg);          LDAP_DEBUG("message", m->msg);
   
         if (ber_scanf_elements(m->msg, "{ite", &msgid, &class, &type, &a) != 0)          if (ober_scanf_elements(m->msg, "{ite", &msgid, &class, &type, &a) != 0)
                 goto parsefail;                  goto parsefail;
         m->msgid = msgid;          m->msgid = msgid;
         m->message_type = type;          m->message_type = type;
Line 407 
Line 407 
         case LDAP_RES_MODRDN:          case LDAP_RES_MODRDN:
         case LDAP_RES_COMPARE:          case LDAP_RES_COMPARE:
         case LDAP_RES_SEARCH_RESULT:          case LDAP_RES_SEARCH_RESULT:
                 if (ber_scanf_elements(m->protocol_op, "{EeSe",                  if (ober_scanf_elements(m->protocol_op, "{EeSe",
                     &m->body.res.rescode, &m->dn, &m->body.res.diagmsg) != 0)                      &m->body.res.rescode, &m->dn, &m->body.res.diagmsg) != 0)
                         goto parsefail;                          goto parsefail;
                 if (m->body.res.rescode == LDAP_REFERRAL) {                  if (m->body.res.rescode == LDAP_REFERRAL) {
                         a = m->body.res.diagmsg->be_next;                          a = m->body.res.diagmsg->be_next;
                         if (ber_scanf_elements(a, "{e", &m->references) != 0)                          if (ober_scanf_elements(a, "{e", &m->references) != 0)
                                 goto parsefail;                                  goto parsefail;
                 }                  }
                 if (m->msg->be_sub) {                  if (m->msg->be_sub) {
                         for (ep = m->msg->be_sub; ep != NULL; ep = ep->be_next) {                          for (ep = m->msg->be_sub; ep != NULL; ep = ep->be_next) {
                                 ber_scanf_elements(ep, "t", &class, &type);                                  ober_scanf_elements(ep, "t", &class, &type);
                                 if (class == 2 && type == 0)                                  if (class == 2 && type == 0)
                                         m->page = aldap_parse_page_control(ep->be_sub->be_sub,                                          m->page = aldap_parse_page_control(ep->be_sub->be_sub,
                                             ep->be_sub->be_sub->be_len);                                              ep->be_sub->be_sub->be_len);
Line 426 
Line 426 
                         m->page = NULL;                          m->page = NULL;
                 break;                  break;
         case LDAP_RES_SEARCH_ENTRY:          case LDAP_RES_SEARCH_ENTRY:
                 if (ber_scanf_elements(m->protocol_op, "{eS{e", &m->dn,                  if (ober_scanf_elements(m->protocol_op, "{eS{e", &m->dn,
                     &m->body.search.attrs) != 0)                      &m->body.search.attrs) != 0)
                         goto parsefail;                          goto parsefail;
                 break;                  break;
         case LDAP_RES_SEARCH_REFERENCE:          case LDAP_RES_SEARCH_REFERENCE:
                 if (ber_scanf_elements(m->protocol_op, "{e", &m->references) != 0)                  if (ober_scanf_elements(m->protocol_op, "{e", &m->references) != 0)
                         goto parsefail;                          goto parsefail;
                 break;                  break;
         case LDAP_RES_EXTENDED:          case LDAP_RES_EXTENDED:
                 if (ber_scanf_elements(m->protocol_op, "{E",                  if (ober_scanf_elements(m->protocol_op, "{E",
                     &m->body.res.rescode) != 0) {                      &m->body.res.rescode) != 0) {
                         goto parsefail;                          goto parsefail;
                 }                  }
Line 460 
Line 460 
         struct aldap_page_control *page;          struct aldap_page_control *page;
   
         b.br_wbuf = NULL;          b.br_wbuf = NULL;
         ber_scanf_elements(control, "ss", &oid, &encoded);          ober_scanf_elements(control, "ss", &oid, &encoded);
         ber_set_readbuf(&b, encoded, control->be_next->be_len);          ober_set_readbuf(&b, encoded, control->be_next->be_len);
         elm = ber_read_elements(&b, NULL);          elm = ober_read_elements(&b, NULL);
   
         if ((page = malloc(sizeof(struct aldap_page_control))) == NULL) {          if ((page = malloc(sizeof(struct aldap_page_control))) == NULL) {
                 if (elm != NULL)                  if (elm != NULL)
                         ber_free_elements(elm);                          ober_free_elements(elm);
                 ber_free(&b);                  ober_free(&b);
                 return NULL;                  return NULL;
         }          }
   
         ber_scanf_elements(elm->be_sub, "is", &page->size, &s);          ober_scanf_elements(elm->be_sub, "is", &page->size, &s);
         page->cookie_len = elm->be_sub->be_next->be_len;          page->cookie_len = elm->be_sub->be_next->be_len;
   
         if ((page->cookie = malloc(page->cookie_len)) == NULL) {          if ((page->cookie = malloc(page->cookie_len)) == NULL) {
                 if (elm != NULL)                  if (elm != NULL)
                         ber_free_elements(elm);                          ober_free_elements(elm);
                 ber_free(&b);                  ober_free(&b);
                 free(page);                  free(page);
                 return NULL;                  return NULL;
         }          }
         memcpy(page->cookie, s, page->cookie_len);          memcpy(page->cookie, s, page->cookie_len);
   
         ber_free_elements(elm);          ober_free_elements(elm);
         ber_free(&b);          ober_free(&b);
         return page;          return page;
 }  }
   
Line 499 
Line 499 
 aldap_freemsg(struct aldap_message *msg)  aldap_freemsg(struct aldap_message *msg)
 {  {
         if (msg->msg)          if (msg->msg)
                 ber_free_elements(msg->msg);                  ober_free_elements(msg->msg);
         free(msg);          free(msg);
 }  }
   
Line 517 
Line 517 
         if (msg->dn == NULL)          if (msg->dn == NULL)
                 return NULL;                  return NULL;
   
         if (ber_get_string(msg->dn, &dn) == -1)          if (ober_get_string(msg->dn, &dn) == -1)
                 return NULL;                  return NULL;
   
         return utoa(dn);          return utoa(dn);
Line 553 
Line 553 
         if (msg->body.res.diagmsg == NULL)          if (msg->body.res.diagmsg == NULL)
                 return NULL;                  return NULL;
   
         if (ber_get_string(msg->body.res.diagmsg, &s) == -1)          if (ober_get_string(msg->body.res.diagmsg, &s) == -1)
                 return NULL;                  return NULL;
   
         return utoa(s);          return utoa(s);
Line 569 
Line 569 
                 return (-1);                  return (-1);
   
         for (i = 0, a = msg->body.search.attrs;          for (i = 0, a = msg->body.search.attrs;
             a != NULL && ber_get_eoc(a) != 0;              a != NULL && ober_get_eoc(a) != 0;
             i++, a = a->be_next)              i++, a = a->be_next)
                 ;                  ;
   
Line 587 
Line 587 
         if (msg->body.search.attrs == NULL)          if (msg->body.search.attrs == NULL)
                 goto fail;                  goto fail;
   
         if (ber_scanf_elements(msg->body.search.attrs, "{s(e)}e",          if (ober_scanf_elements(msg->body.search.attrs, "{s(e)}e",
             &key, &b, &c) != 0)              &key, &b, &c) != 0)
                 goto fail;                  goto fail;
   
Line 619 
Line 619 
   
         LDAP_DEBUG("attr", msg->body.search.iter);          LDAP_DEBUG("attr", msg->body.search.iter);
   
         if (ber_get_eoc(msg->body.search.iter) == 0)          if (ober_get_eoc(msg->body.search.iter) == 0)
                 goto notfound;                  goto notfound;
   
         if (ber_scanf_elements(msg->body.search.iter, "{s(e)}e", &key, &a, &b)          if (ober_scanf_elements(msg->body.search.iter, "{s(e)}e", &key, &a, &b)
             != 0)              != 0)
                 goto fail;                  goto fail;
   
Line 658 
Line 658 
         for (a = msg->body.search.attrs;;) {          for (a = msg->body.search.attrs;;) {
                 if (a == NULL)                  if (a == NULL)
                         goto notfound;                          goto notfound;
                 if (ber_get_eoc(a) == 0)                  if (ober_get_eoc(a) == 0)
                         goto notfound;                          goto notfound;
                 if (ber_scanf_elements(a, "{s(e", &descr, &b) != 0)                  if (ober_scanf_elements(a, "{s(e", &descr, &b) != 0)
                         goto fail;                          goto fail;
                 if (strcasecmp(descr, inkey) == 0)                  if (strcasecmp(descr, inkey) == 0)
                         goto attrfound;                          goto attrfound;
Line 864 
Line 864 
   
         for (a = elm, i = 0; a != NULL && a->be_type == BER_TYPE_OCTETSTRING;          for (a = elm, i = 0; a != NULL && a->be_type == BER_TYPE_OCTETSTRING;
             a = a->be_next, i++)              a = a->be_next, i++)
                 (void) ber_get_ostring(a, &(ret->str[i]));                  (void) ober_get_ostring(a, &(ret->str[i]));
   
         return ret;          return ret;
 }  }
Line 893 
Line 893 
                 return (NULL);                  return (NULL);
   
         if (*cp != '\0') {          if (*cp != '\0') {
                 ber_free_elements(elm);                  ober_free_elements(elm);
                 ber_link_elements(ber, NULL);                  ober_link_elements(ber, NULL);
                 errno = EINVAL;                  errno = EINVAL;
                 return (NULL);                  return (NULL);
         }          }
Line 941 
Line 941 
                 else                  else
                         type = LDAP_FILT_OR;                          type = LDAP_FILT_OR;
   
                 if ((elm = ber_add_set(prev)) == NULL)                  if ((elm = ober_add_set(prev)) == NULL)
                         goto callfail;                          goto callfail;
                 root = elm;                  root = elm;
                 ber_set_header(elm, BER_CLASS_CONTEXT, type);                  ober_set_header(elm, BER_CLASS_CONTEXT, type);
   
                 if (*++cp != '(')               /* opening `(` of filter */                  if (*++cp != '(')               /* opening `(` of filter */
                         goto syntaxfail;                          goto syntaxfail;
Line 960 
Line 960 
                 break;                  break;
   
         case '!':               /* NOT */          case '!':               /* NOT */
                 if ((root = ber_add_sequence(prev)) == NULL)                  if ((root = ober_add_sequence(prev)) == NULL)
                         goto callfail;                          goto callfail;
                 ber_set_header(root, BER_CLASS_CONTEXT, LDAP_FILT_NOT);                  ober_set_header(root, BER_CLASS_CONTEXT, LDAP_FILT_NOT);
   
                 cp++;                           /* now points to sub-filter */                  cp++;                           /* now points to sub-filter */
                 if ((elm = ldap_do_parse_search_filter(root, &cp)) == NULL)                  if ((elm = ldap_do_parse_search_filter(root, &cp)) == NULL)
Line 1004 
Line 1004 
                 if (strncmp(attr_val, "*)", 2) == 0) {                  if (strncmp(attr_val, "*)", 2) == 0) {
                         cp++;                   /* point to trailing `)` */                          cp++;                   /* point to trailing `)` */
                         if ((root =                          if ((root =
                             ber_add_nstring(prev, attr_desc, len)) == NULL)                              ober_add_nstring(prev, attr_desc, len)) == NULL)
                                 goto bad;                                  goto bad;
   
                         ber_set_header(root, BER_CLASS_CONTEXT, LDAP_FILT_PRES);                          ober_set_header(root, BER_CLASS_CONTEXT, LDAP_FILT_PRES);
                         break;                          break;
                 }                  }
   
                 if ((root = ber_add_sequence(prev)) == NULL)                  if ((root = ober_add_sequence(prev)) == NULL)
                         goto callfail;                          goto callfail;
                 ber_set_header(root, BER_CLASS_CONTEXT, type);                  ober_set_header(root, BER_CLASS_CONTEXT, type);
   
                 if ((elm = ber_add_nstring(root, attr_desc, len)) == NULL)                  if ((elm = ober_add_nstring(root, attr_desc, len)) == NULL)
                         goto callfail;                          goto callfail;
   
                 len = strcspn(attr_val, "*)");                  len = strcspn(attr_val, "*)");
Line 1030 
Line 1030 
   
                         cp = attr_val;                          cp = attr_val;
   
                         ber_set_header(root, BER_CLASS_CONTEXT, LDAP_FILT_SUBS);                          ober_set_header(root, BER_CLASS_CONTEXT, LDAP_FILT_SUBS);
   
                         if ((elm = ber_add_sequence(elm)) == NULL)                          if ((elm = ober_add_sequence(elm)) == NULL)
                                 goto callfail;                                  goto callfail;
   
                         for (initial = 1;; cp++, initial = 0) {                          for (initial = 1;; cp++, initial = 0) {
Line 1059 
Line 1059 
                                 if ((parsed_val = parseval(attr_val, len)) ==                                  if ((parsed_val = parseval(attr_val, len)) ==
                                     NULL)                                      NULL)
                                         goto callfail;                                          goto callfail;
                                 elm = ber_add_nstring(elm, parsed_val,                                  elm = ober_add_nstring(elm, parsed_val,
                                     strlen(parsed_val));                                      strlen(parsed_val));
                                 free(parsed_val);                                  free(parsed_val);
                                 if (elm == NULL)                                  if (elm == NULL)
                                         goto callfail;                                          goto callfail;
                                 ber_set_header(elm, BER_CLASS_CONTEXT, type);                                  ober_set_header(elm, BER_CLASS_CONTEXT, type);
                                 if (type == LDAP_FILT_SUBS_FIN)                                  if (type == LDAP_FILT_SUBS_FIN)
                                         break;                                          break;
                         }                          }
Line 1073 
Line 1073 
   
                 if ((parsed_val = parseval(attr_val, len)) == NULL)                  if ((parsed_val = parseval(attr_val, len)) == NULL)
                         goto callfail;                          goto callfail;
                 elm = ber_add_nstring(elm, parsed_val, strlen(parsed_val));                  elm = ober_add_nstring(elm, parsed_val, strlen(parsed_val));
                 free(parsed_val);                  free(parsed_val);
                 if (elm == NULL)                  if (elm == NULL)
                         goto callfail;                          goto callfail;
Line 1089 
Line 1089 
 callfail:  callfail:
 bad:  bad:
         if (root != NULL)          if (root != NULL)
                 ber_free_elements(root);                  ober_free_elements(root);
         ber_link_elements(prev, NULL);          ober_link_elements(prev, NULL);
         return (NULL);          return (NULL);
 }  }
   
Line 1112 
Line 1112 
         struct ber_oid   o;          struct ber_oid   o;
   
         /* calculate lengths */          /* calculate lengths */
         ber_calc_len(root);          ober_calc_len(root);
   
         switch (root->be_encoding) {          switch (root->be_encoding) {
         case BER_TYPE_SEQUENCE:          case BER_TYPE_SEQUENCE:
Line 1242 
Line 1242 
   
         switch (root->be_encoding) {          switch (root->be_encoding) {
         case BER_TYPE_BOOLEAN:          case BER_TYPE_BOOLEAN:
                 if (ber_get_boolean(root, &d) == -1) {                  if (ober_get_boolean(root, &d) == -1) {
                         fprintf(stderr, "<INVALID>\n");                          fprintf(stderr, "<INVALID>\n");
                         break;                          break;
                 }                  }
                 fprintf(stderr, "%s(%d)\n", d ? "true" : "false", d);                  fprintf(stderr, "%s(%d)\n", d ? "true" : "false", d);
                 break;                  break;
         case BER_TYPE_INTEGER:          case BER_TYPE_INTEGER:
                 if (ber_get_integer(root, &v) == -1) {                  if (ober_get_integer(root, &v) == -1) {
                         fprintf(stderr, "<INVALID>\n");                          fprintf(stderr, "<INVALID>\n");
                         break;                          break;
                 }                  }
                 fprintf(stderr, "value %lld\n", v);                  fprintf(stderr, "value %lld\n", v);
                 break;                  break;
         case BER_TYPE_ENUMERATED:          case BER_TYPE_ENUMERATED:
                 if (ber_get_enumerated(root, &v) == -1) {                  if (ober_get_enumerated(root, &v) == -1) {
                         fprintf(stderr, "<INVALID>\n");                          fprintf(stderr, "<INVALID>\n");
                         break;                          break;
                 }                  }
                 fprintf(stderr, "value %lld\n", v);                  fprintf(stderr, "value %lld\n", v);
                 break;                  break;
         case BER_TYPE_BITSTRING:          case BER_TYPE_BITSTRING:
                 if (ber_get_bitstring(root, (void *)&buf, &len) == -1) {                  if (ober_get_bitstring(root, (void *)&buf, &len) == -1) {
                         fprintf(stderr, "<INVALID>\n");                          fprintf(stderr, "<INVALID>\n");
                         break;                          break;
                 }                  }
Line 1273 
Line 1273 
                 fprintf(stderr, "\n");                  fprintf(stderr, "\n");
                 break;                  break;
         case BER_TYPE_OBJECT:          case BER_TYPE_OBJECT:
                 if (ber_get_oid(root, &o) == -1) {                  if (ober_get_oid(root, &o) == -1) {
                         fprintf(stderr, "<INVALID>\n");                          fprintf(stderr, "<INVALID>\n");
                         break;                          break;
                 }                  }
                 fprintf(stderr, "\n");                  fprintf(stderr, "\n");
                 break;                  break;
         case BER_TYPE_OCTETSTRING:          case BER_TYPE_OCTETSTRING:
                 if (ber_get_nstring(root, (void *)&buf, &len) == -1) {                  if (ober_get_nstring(root, (void *)&buf, &len) == -1) {
                         fprintf(stderr, "<INVALID>\n");                          fprintf(stderr, "<INVALID>\n");
                         break;                          break;
                 }                  }

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9