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

Diff for /src/usr.bin/ldap/Attic/ber.c between version 1.17 and 1.18

version 1.17, 2018/07/31 19:38:09 version 1.18, 2018/08/03 01:51:28
Line 1156 
Line 1156 
         long long val = 0;          long long val = 0;
         struct ber_element *next;          struct ber_element *next;
         unsigned int type;          unsigned int type;
         int i, class, cstruct;          int i, class, cstruct, elements = 0;
         ssize_t len, r, totlen = 0;          ssize_t len, r, totlen = 0;
         u_char c;          u_char c;
   
Line 1250 
Line 1250 
                 }                  }
                 next = elm->be_sub;                  next = elm->be_sub;
                 while (len > 0) {                  while (len > 0) {
                           /*
                            * Prevent stack overflow from excessive recursion
                            * depth in ber_free_elements().
                            */
                           if (elements >= BER_MAX_SEQ_ELEMENTS) {
                                   errno = ERANGE;
                                   return -1;
                           }
                         r = ber_read_element(ber, next);                          r = ber_read_element(ber, next);
                         if (r == -1)                          if (r == -1)
                                 return -1;                                  return -1;
                           elements++;
                         len -= r;                          len -= r;
                         if (len > 0 && next->be_next == NULL) {                          if (len > 0 && next->be_next == NULL) {
                                 if ((next->be_next = ber_get_element(0)) ==                                  if ((next->be_next = ber_get_element(0)) ==

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.18