Diff for /libraries/liblber/decode.c between versions 1.10 and 1.11

version 1.10, 1998/11/15 21:40:16 version 1.11, 1998/12/18 20:08:28
Line 344  ber_first_element( BerElement *ber, unsi Line 344  ber_first_element( BerElement *ber, unsi
         *last = ber->ber_ptr + *len;          *last = ber->ber_ptr + *len;
   
         if ( *last == ber->ber_ptr ) {          if ( *last == ber->ber_ptr ) {
   #ifdef LBER_END_SEQORSET 
                   return( LBER_END_SEQORSET );
   #else
                 return( LBER_DEFAULT );                  return( LBER_DEFAULT );
   #endif
         }          }
   
         return( ber_peek_tag( ber, len ) );          return( ber_peek_tag( ber, len ) );
Line 354  unsigned long Line 358  unsigned long
 ber_next_element( BerElement *ber, unsigned long *len, char *last )  ber_next_element( BerElement *ber, unsigned long *len, char *last )
 {  {
         if ( ber->ber_ptr == last ) {          if ( ber->ber_ptr == last ) {
   #ifdef LBER_END_SEQORSET 
                   return( LBER_END_SEQORSET );
   #else
                 return( LBER_DEFAULT );                  return( LBER_DEFAULT );
   #endif
         }          }
   
         return( ber_peek_tag( ber, len ) );          return( ber_peek_tag( ber, len ) );
Line 462  va_dcl Line 470  va_dcl
                         *sss = NULL;                          *sss = NULL;
                         j = 0;                          j = 0;
                         for ( tag = ber_first_element( ber, &len, &last );                          for ( tag = ber_first_element( ber, &len, &last );
                             tag != LBER_DEFAULT && rc != LBER_DEFAULT;                              tag != LBER_DEFAULT && 
                             tag = ber_next_element( ber, &len, last ) ) {  #ifdef LDAP_END_SEQORSET
                                           tag != LBER_END_SEQORSET &&
   #endif
                                           rc != LBER_DEFAULT;
                               tag = ber_next_element( ber, &len, last ) )
                           {
                                 if ( *sss == NULL ) {                                  if ( *sss == NULL ) {
                                         *sss = (char **) malloc(                                          *sss = (char **) malloc(
                                             2 * sizeof(char *) );                                              2 * sizeof(char *) );
Line 474  va_dcl Line 487  va_dcl
                                 rc = ber_get_stringa( ber, &((*sss)[j]) );                                  rc = ber_get_stringa( ber, &((*sss)[j]) );
                                 j++;                                  j++;
                         }                          }
   #ifdef LDAP_END_SEQORSET
                           if (rc != LBER_DEFAULT && 
                                   tag != LBER_END_SEQORSET )
                           {
                                   rc = LBER_DEFAULT;
                           }
   #endif
                         if ( j > 0 )                          if ( j > 0 )
                                 (*sss)[j] = NULL;                                  (*sss)[j] = NULL;
                         break;                          break;
Line 483  va_dcl Line 503  va_dcl
                         *bv = NULL;                          *bv = NULL;
                         j = 0;                          j = 0;
                         for ( tag = ber_first_element( ber, &len, &last );                          for ( tag = ber_first_element( ber, &len, &last );
                             tag != LBER_DEFAULT && rc != LBER_DEFAULT;                              tag != LBER_DEFAULT && 
                             tag = ber_next_element( ber, &len, last ) ) {  #ifdef LDAP_END_SEQORSET
                                           tag != LBER_END_SEQORSET &&
   #endif
                                           rc != LBER_DEFAULT;
                               tag = ber_next_element( ber, &len, last ) )
                           {
                                 if ( *bv == NULL ) {                                  if ( *bv == NULL ) {
                                         *bv = (struct berval **) malloc(                                          *bv = (struct berval **) malloc(
                                             2 * sizeof(struct berval *) );                                              2 * sizeof(struct berval *) );
Line 495  va_dcl Line 520  va_dcl
                                 rc = ber_get_stringal( ber, &((*bv)[j]) );                                  rc = ber_get_stringal( ber, &((*bv)[j]) );
                                 j++;                                  j++;
                         }                          }
   #ifdef LDAP_END_SEQORSET
                           if (rc != LBER_DEFAULT && 
                                   tag != LBER_END_SEQORSET )
                           {
                                   rc = LBER_DEFAULT;
                           }
   #endif
                         if ( j > 0 )                          if ( j > 0 )
                                 (*bv)[j] = NULL;                                  (*bv)[j] = NULL;
                         break;                          break;
Line 532  va_dcl Line 564  va_dcl
 void  void
 ber_bvfree( struct berval *bv )  ber_bvfree( struct berval *bv )
 {  {
   #ifdef LBER_ASSERT
           assert(bv != NULL);                     /* bv damn better point to something */
   #endif
         if ( bv->bv_val != NULL )          if ( bv->bv_val != NULL )
                 free( bv->bv_val );                  free( bv->bv_val );
         free( (char *) bv );          free( (char *) bv );
Line 542  ber_bvecfree( struct berval **bv ) Line 577  ber_bvecfree( struct berval **bv )
 {  {
         int     i;          int     i;
   
   #ifdef LBER_ASSERT
           assert(bv != NULL);                     /* bv damn better point to something */
   #endif
         for ( i = 0; bv[i] != NULL; i++ )          for ( i = 0; bv[i] != NULL; i++ )
                 ber_bvfree( bv[i] );                  ber_bvfree( bv[i] );
         free( (char *) bv );          free( (char *) bv );
Line 556  ber_bvdup( struct berval *bv ) Line 594  ber_bvdup( struct berval *bv )
             == NULL ) {              == NULL ) {
                 return( NULL );                  return( NULL );
         }          }
   
           if ( bv->bv_val == NULL ) {
                   new->bv_val = NULL;
                   new->bv_len = 0;
                   return ( new );
           }
   
         if ( (new->bv_val = (char *) malloc( bv->bv_len + 1 )) == NULL ) {          if ( (new->bv_val = (char *) malloc( bv->bv_len + 1 )) == NULL ) {
                   free( new );
                 return( NULL );                  return( NULL );
         }          }
   
         SAFEMEMCPY( new->bv_val, bv->bv_val, (size_t) bv->bv_len );          SAFEMEMCPY( new->bv_val, bv->bv_val, (size_t) bv->bv_len );
         new->bv_val[bv->bv_len] = '\0';          new->bv_val[bv->bv_len] = '\0';
         new->bv_len = bv->bv_len;          new->bv_len = bv->bv_len;

Removed from v.1.10  
changed lines
  Added in v.1.11


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