Diff for /libraries/liblber/decode.c between versions 1.63 and 1.64

version 1.63, 2001/11/04 16:50:16 version 1.64, 2001/12/04 05:10:10
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.62 2001/11/03 21:07:41 kurt Exp $ */  /* $OpenLDAP: pkg/ldap/libraries/liblber/decode.c,v 1.63 2001/11/04 16:50:16 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 596  ber_scanf ( BerElement *ber, Line 596  ber_scanf ( BerElement *ber,
                                         (j + 2) * sizeof(char *) );                                          (j + 2) * sizeof(char *) );
   
                                 if( *sss == NULL ) {                                  if( *sss == NULL ) {
                                         LBER_FREE( save );                                          save[j] = NULL;
                                           ber_memvfree( save );
                                         rc = LBER_DEFAULT;                                          rc = LBER_DEFAULT;
                                         goto breakout;                                          goto breakout;
                                 }                                  }
Line 604  ber_scanf ( BerElement *ber, Line 605  ber_scanf ( BerElement *ber,
                                 rc = ber_get_stringa( ber, &((*sss)[j]) );                                  rc = ber_get_stringa( ber, &((*sss)[j]) );
                                 j++;                                  j++;
                         }                          }
                         if ( j > 0 )                          if ( j > 0 ) (*sss)[j] = NULL;
                                 (*sss)[j] = NULL;  
                         break;                          break;
   
                 case 'V':       /* sequence of strings + lengths */                  case 'V':       /* sequence of strings + lengths */
Line 622  ber_scanf ( BerElement *ber, Line 622  ber_scanf ( BerElement *ber,
                                         (j + 2) * sizeof(struct berval *) );                                          (j + 2) * sizeof(struct berval *) );
                                   
                                 if( *bv == NULL ) {                                  if( *bv == NULL ) {
                                         LBER_FREE( save );                                          save[j] = NULL;
                                           ber_bvecfree( save );
                                         rc = LBER_DEFAULT;                                          rc = LBER_DEFAULT;
                                         goto breakout;                                          goto breakout;
                                 }                                  }
Line 630  ber_scanf ( BerElement *ber, Line 631  ber_scanf ( BerElement *ber,
                                 rc = ber_get_stringal( ber, &((*bv)[j]) );                                  rc = ber_get_stringal( ber, &((*bv)[j]) );
                                 j++;                                  j++;
                         }                          }
                         if ( j > 0 )                          if ( j > 0 ) (*bv)[j] = NULL;
                                 (*bv)[j] = NULL;  
                         break;                          break;
   
                 case 'x':       /* skip the next element - whatever it is */                  case 'x':       /* skip the next element - whatever it is */
Line 744  breakout: Line 744  breakout:
                 case 'v':       /* sequence of strings */                  case 'v':       /* sequence of strings */
                         sss = va_arg( ap, char *** );                          sss = va_arg( ap, char *** );
                         if ( *sss ) {                          if ( *sss ) {
                                 for (j = 0;  (*sss)[j];  j++) {                                  ber_memvfree( *sss );
                                         LBER_FREE( (*sss)[j] );  
                                         (*sss)[j] = NULL;  
                                 }  
                                 LBER_FREE( *sss );  
                                 *sss = NULL;                                  *sss = NULL;
                         }                          }
                         break;                          break;

Removed from v.1.63  
changed lines
  Added in v.1.64


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