Diff for /libraries/liblber/decode.c between versions 1.48 and 1.52

version 1.48, 2000/05/12 22:02:36 version 1.52, 2000/06/05 17:22:22
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.47 2000/04/26 07:17:05 kurt Exp $ */  /* $OpenLDAP: pkg/ldap/libraries/liblber/decode.c,v 1.51 2000/05/14 01:38:27 kurt Exp $ */
 /*  /*
  * Copyright 1998-1999 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
  */   */
 /* Portions  /* Portions
Line 229  ber_get_int( Line 229  ber_get_int(
 }  }
   
 ber_tag_t  ber_tag_t
   ber_get_enum(
           BerElement *ber,
           ber_int_t *num )
   {
           return ber_get_int( ber, num );
   }
   
   ber_tag_t
 ber_get_stringb(  ber_get_stringb(
         BerElement *ber,          BerElement *ber,
         char *buf,          char *buf,
Line 237  ber_get_stringb( Line 245  ber_get_stringb(
         ber_len_t       datalen;          ber_len_t       datalen;
         ber_tag_t       tag;          ber_tag_t       tag;
   
 #ifdef STR_TRANSLATION  
         char            *transbuf;  
 #endif /* STR_TRANSLATION */  
   
         assert( ber != NULL );          assert( ber != NULL );
         assert( BER_VALID( ber ) );          assert( BER_VALID( ber ) );
   
Line 254  ber_get_stringb( Line 258  ber_get_stringb(
   
         buf[datalen] = '\0';          buf[datalen] = '\0';
   
 #ifdef STR_TRANSLATION  
         if ( datalen > 0 && ( ber->ber_options & LBER_TRANSLATE_STRINGS ) != 0  
             && ber->ber_decode_translate_proc ) {  
                 transbuf = buf;  
                 ++datalen;  
                 if ( (*(ber->ber_decode_translate_proc))( &transbuf, &datalen,  
                     0 ) != 0 ) {  
                         return( LBER_DEFAULT );  
                 }  
                 if ( datalen > *len ) {  
                         LBER_FREE( transbuf );  
                         return( LBER_DEFAULT );  
                 }  
                 SAFEMEMCPY( buf, transbuf, datalen );  
                 LBER_FREE( transbuf );  
                 --datalen;  
         }  
 #endif /* STR_TRANSLATION */  
   
         *len = datalen;          *len = datalen;
         return( tag );          return( tag );
 }  }
Line 303  ber_get_stringa( BerElement *ber, char * Line 288  ber_get_stringa( BerElement *ber, char *
         }          }
         (*buf)[datalen] = '\0';          (*buf)[datalen] = '\0';
   
 #ifdef STR_TRANSLATION  
         if ( datalen > 0 && ( ber->ber_options & LBER_TRANSLATE_STRINGS ) != 0  
             && ber->ber_decode_translate_proc ) {  
                 ++datalen;  
                 if ( (*(ber->ber_decode_translate_proc))( buf, &datalen, 1 )  
                     != 0 ) {  
                         LBER_FREE( *buf );  
                         *buf = NULL;  
                         return( LBER_DEFAULT );  
                 }  
         }  
 #endif /* STR_TRANSLATION */  
   
         return( tag );          return( tag );
 }  }
   
Line 352  ber_get_stringal( BerElement *ber, struc Line 324  ber_get_stringal( BerElement *ber, struc
         ((*bv)->bv_val)[len] = '\0';          ((*bv)->bv_val)[len] = '\0';
         (*bv)->bv_len = len;          (*bv)->bv_len = len;
   
 #ifdef STR_TRANSLATION  
         if ( len > 0 && ( ber->ber_options & LBER_TRANSLATE_STRINGS ) != 0  
             && ber->ber_decode_translate_proc ) {  
                 ++len;  
                 if ( (*(ber->ber_decode_translate_proc))( &((*bv)->bv_val),  
                     &len, 1 ) != 0 ) {  
                         ber_bvfree( *bv );  
                         *bv = NULL;  
                         return( LBER_DEFAULT );  
                 }  
                 (*bv)->bv_len = len - 1;  
         }  
 #endif /* STR_TRANSLATION */  
   
         return( tag );          return( tag );
 }  }
   
Line 770  ber_scanf ( BerElement *ber, Line 728  ber_scanf ( BerElement *ber,
   
         return( rc );          return( rc );
 }  }
   
   
 #ifdef STR_TRANSLATION  
 void  
 ber_set_string_translators( BerElement *ber, BERTranslateProc encode_proc,  
         BERTranslateProc decode_proc )  
 {  
         assert( ber != NULL );  
         assert( BER_VALID( ber ) );  
   
     ber->ber_encode_translate_proc = encode_proc;  
     ber->ber_decode_translate_proc = decode_proc;  
 }  
 #endif /* STR_TRANSLATION */  

Removed from v.1.48  
changed lines
  Added in v.1.52


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