Diff for /libraries/liblber/decode.c between versions 1.76 and 1.79

version 1.76, 2002/01/03 19:04:31 version 1.79, 2002/01/06 02:05:02
Line 1 Line 1
 /* decode.c - ber input decoding routines */  /* decode.c - ber input decoding routines */
 /* $OpenLDAP: pkg/ldap/libraries/liblber/decode.c,v 1.75 2002/01/03 04:36:26 hyc Exp $ */  /* $OpenLDAP: pkg/ldap/libraries/liblber/decode.c,v 1.78 2002/01/06 01:23:36 hyc Exp $ */
 /*  /*
  * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.   * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file   * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  */   */
 /* Portions  /* Portions
Line 44  ber_get_tag( BerElement *ber ) Line 44  ber_get_tag( BerElement *ber )
         assert( ber != NULL );          assert( ber != NULL );
         assert( LBER_VALID( ber ) );          assert( LBER_VALID( ber ) );
   
         if ( ber_read( ber, (char *) &xbyte, 1 ) != 1 ) {          if ( ber_pvt_ber_remaining( ber ) < 1 ) {
                 return LBER_DEFAULT;                  return LBER_DEFAULT;
         }          }
   
         tag = xbyte;          if ( ber->ber_ptr == ber->ber_buf )
                   tag = *(unsigned char *)ber->ber_ptr;
           else
                   tag = ber->ber_tag;
           ber->ber_ptr++;
   
         if ( (xbyte & LBER_BIG_TAG_MASK) != LBER_BIG_TAG_MASK ) {          if ( (tag & LBER_BIG_TAG_MASK) != LBER_BIG_TAG_MASK ) {
                 return tag;                  return tag;
         }          }
   
Line 146  ber_skip_tag( BerElement *ber, ber_len_t Line 150  ber_skip_tag( BerElement *ber, ber_len_t
         if( *len > (ber_len_t) ber_pvt_ber_remaining( ber ) ) {          if( *len > (ber_len_t) ber_pvt_ber_remaining( ber ) ) {
                 return LBER_DEFAULT;                  return LBER_DEFAULT;
         }          }
           ber->ber_tag = *(unsigned char *)ber->ber_ptr;
   
         return tag;          return tag;
 }  }
Line 161  ber_peek_tag( Line 166  ber_peek_tag(
          */           */
   
         char *save;          char *save;
         ber_tag_t       tag;          ber_tag_t       tag, old;
   
           old = ber->ber_tag;
         save = ber->ber_ptr;          save = ber->ber_ptr;
         tag = ber_skip_tag( ber, len );          tag = ber_skip_tag( ber, len );
         ber->ber_ptr = save;          ber->ber_ptr = save;
           ber->ber_tag = old;
   
         return tag;          return tag;
 }  }
Line 213  ber_getnint( Line 220  ber_getnint(
         } else {          } else {
                 *num = 0;                  *num = 0;
         }          }
           ber->ber_tag = *(unsigned char *)ber->ber_ptr;
   
         return len;          return len;
 }  }
Line 271  ber_get_stringb( Line 279  ber_get_stringb(
         if ( (ber_len_t) ber_read( ber, buf, datalen ) != datalen ) {          if ( (ber_len_t) ber_read( ber, buf, datalen ) != datalen ) {
                 return LBER_DEFAULT;                  return LBER_DEFAULT;
         }          }
           ber->ber_tag = *(unsigned char *)ber->ber_ptr;
   
         buf[datalen] = '\0';          buf[datalen] = '\0';
   
Line 423  ber_get_stringbv( BerElement *ber, struc Line 432  ber_get_stringbv( BerElement *ber, struc
                 return LBER_DEFAULT;                  return LBER_DEFAULT;
         }          }
         bv->bv_val[bv->bv_len] = '\0';          bv->bv_val[bv->bv_len] = '\0';
           ber->ber_tag = *(unsigned char *)ber->ber_ptr;
   
         return tag;          return tag;
 }  }
Line 499  ber_get_bitstringa( Line 509  ber_get_bitstringa(
                 *buf = NULL;                  *buf = NULL;
                 return LBER_DEFAULT;                  return LBER_DEFAULT;
         }          }
           ber->ber_tag = *(unsigned char *)ber->ber_ptr;
   
         *blen = datalen * 8 - unusedbits;          *blen = datalen * 8 - unusedbits;
         return tag;          return tag;
Line 520  ber_get_null( BerElement *ber ) Line 531  ber_get_null( BerElement *ber )
         if ( len != 0 ) {          if ( len != 0 ) {
                 return LBER_DEFAULT;                  return LBER_DEFAULT;
         }          }
           ber->ber_tag = *(unsigned char *)ber->ber_ptr;
   
         return( tag );          return( tag );
 }  }
Line 558  ber_first_element( Line 570  ber_first_element(
                 *last = NULL;                  *last = NULL;
                 return LBER_DEFAULT;                  return LBER_DEFAULT;
         }          }
           ber->ber_tag = *(unsigned char *)ber->ber_ptr;
   
         *last = ber->ber_ptr + *len;          *last = ber->ber_ptr + *len;
   
Line 743  ber_scanf ( BerElement *ber, Line 756  ber_scanf ( BerElement *ber,
                         if ( (rc = ber_skip_tag( ber, &len )) == LBER_DEFAULT )                          if ( (rc = ber_skip_tag( ber, &len )) == LBER_DEFAULT )
                                 break;                                  break;
                         ber->ber_ptr += len;                          ber->ber_ptr += len;
                           ber->ber_tag = *(unsigned char *)ber->ber_ptr;
                         break;                          break;
   
                 case '{':       /* begin sequence */                  case '{':       /* begin sequence */

Removed from v.1.76  
changed lines
  Added in v.1.79


______________
© Copyright 1998-2020, OpenLDAP Foundation, info@OpenLDAP.org