Diff for /libraries/liblber/decode.c between versions 1.34.6.3 and 1.54

version 1.34.6.3, 2000/06/13 17:57:17 version 1.54, 2000/10/02 15:43:06
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.52 2000/06/05 17:22:22 kurt Exp $ */  /* $OpenLDAP: pkg/ldap/libraries/liblber/decode.c,v 1.53 2000/07/26 21:32:39 kurt Exp $ */
 /*  /*
  * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.   * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file   * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
Line 136  ber_skip_tag( BerElement *ber, ber_len_t Line 136  ber_skip_tag( BerElement *ber, ber_len_t
   
 ber_tag_t  ber_tag_t
 ber_peek_tag(  ber_peek_tag(
         BerElement *ber_in,          BerElement *ber,
         ber_len_t *len )          ber_len_t *len )
 {  {
         ber_tag_t       tag;          /*
         BerElement *ber;           * This implementation assumes ber_skip_tag() only
            * modifies ber_ptr field of the BerElement.
         assert( ber_in != NULL );           */
         assert( BER_VALID( ber_in ) );  
   
         *len = 0;  
   
         ber = ber_dup( ber_in );  
   
         if( ber == NULL ) {  
                 return LBER_ERROR;  
         }  
   
         assert( BER_VALID( ber ) );          char *save;
           ber_tag_t       tag;
   
           save = ber->ber_ptr;
         tag = ber_skip_tag( ber, len );          tag = ber_skip_tag( ber, len );
           ber->ber_ptr = save;
   
         ber_free( ber, 0 );          return tag;
         return( tag );  
 }  }
   
 static ber_len_t  static ber_len_t
Line 304  ber_get_stringal( BerElement *ber, struc Line 297  ber_get_stringal( BerElement *ber, struc
   
         if ( (tag = ber_skip_tag( ber, &len )) == LBER_DEFAULT ) {          if ( (tag = ber_skip_tag( ber, &len )) == LBER_DEFAULT ) {
                 *bv = NULL;                  *bv = NULL;
                 return( LBER_DEFAULT );                  return LBER_DEFAULT;
         }          }
   
         if ( (*bv = (struct berval *) LBER_MALLOC( sizeof(struct berval) )) == NULL )          *bv = (struct berval *) LBER_MALLOC( sizeof(struct berval) );
                 return( LBER_DEFAULT );          if ( *bv == NULL ) {
                   return LBER_DEFAULT;
           }
   
         if ( ((*bv)->bv_val = (char *) LBER_MALLOC( len + 1 )) == NULL ) {          if( len == 0 ) {
                   (*bv)->bv_val = NULL;
                   (*bv)->bv_len = 0;
                   return tag;
           }
   
           (*bv)->bv_val = (char *) LBER_MALLOC( len + 1 );
           if ( (*bv)->bv_val == NULL ) {
                 LBER_FREE( *bv );                  LBER_FREE( *bv );
                 *bv = NULL;                  *bv = NULL;
                 return( LBER_DEFAULT );                  return LBER_DEFAULT;
         }          }
   
         if ( (ber_len_t) ber_read( ber, (*bv)->bv_val, len ) != len ) {          if ( (ber_len_t) ber_read( ber, (*bv)->bv_val, len ) != len ) {
                 ber_bvfree( *bv );                  ber_bvfree( *bv );
                 *bv = NULL;                  *bv = NULL;
                 return( LBER_DEFAULT );                  return LBER_DEFAULT;
         }          }
   
         ((*bv)->bv_val)[len] = '\0';          ((*bv)->bv_val)[len] = '\0';
         (*bv)->bv_len = len;          (*bv)->bv_len = len;
   

Removed from v.1.34.6.3  
changed lines
  Added in v.1.54


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