Diff for /libraries/liblber/decode.c between versions 1.75 and 1.78

version 1.75, 2002/01/03 04:36:26 version 1.78, 2002/01/06 01:23:36
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.74 2002/01/03 02:44:38 hyc Exp $ */  /* $OpenLDAP: pkg/ldap/libraries/liblber/decode.c,v 1.77 2002/01/04 20:17:36 kurt 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;
         }          }
   
           if ( ber->ber_ptr == ber->ber_buf )
                   xbyte = *ber->ber_ptr;
           else
                   xbyte = ber->ber_tag;
           ber->ber_ptr++;
   
         tag = xbyte;          tag = xbyte;
   
         if ( (xbyte & LBER_BIG_TAG_MASK) != LBER_BIG_TAG_MASK ) {          if ( (xbyte & LBER_BIG_TAG_MASK) != LBER_BIG_TAG_MASK ) {
Line 146  ber_skip_tag( BerElement *ber, ber_len_t Line 152  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 = *ber->ber_ptr;
   
         return tag;          return tag;
 }  }
Line 161  ber_peek_tag( Line 168  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 222  ber_getnint(
         } else {          } else {
                 *num = 0;                  *num = 0;
         }          }
           ber->ber_tag = *ber->ber_ptr;
   
         return len;          return len;
 }  }
Line 271  ber_get_stringb( Line 281  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 = *ber->ber_ptr;
   
         buf[datalen] = '\0';          buf[datalen] = '\0';
   
Line 423  ber_get_stringbv( BerElement *ber, struc Line 434  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 = *ber->ber_ptr;
   
         return tag;          return tag;
 }  }
Line 499  ber_get_bitstringa( Line 511  ber_get_bitstringa(
                 *buf = NULL;                  *buf = NULL;
                 return LBER_DEFAULT;                  return LBER_DEFAULT;
         }          }
           ber->ber_tag = *ber->ber_ptr;
   
         *blen = datalen * 8 - unusedbits;          *blen = datalen * 8 - unusedbits;
         return tag;          return tag;
Line 520  ber_get_null( BerElement *ber ) Line 533  ber_get_null( BerElement *ber )
         if ( len != 0 ) {          if ( len != 0 ) {
                 return LBER_DEFAULT;                  return LBER_DEFAULT;
         }          }
           ber->ber_tag = *ber->ber_ptr;
   
         return( tag );          return( tag );
 }  }
Line 558  ber_first_element( Line 572  ber_first_element(
                 *last = NULL;                  *last = NULL;
                 return LBER_DEFAULT;                  return LBER_DEFAULT;
         }          }
           ber->ber_tag = *ber->ber_ptr;
   
         *last = ber->ber_ptr + *len;          *last = ber->ber_ptr + *len;
   
Line 595  ber_scanf ( BerElement *ber, Line 610  ber_scanf ( BerElement *ber,
 {  {
         va_list         ap;          va_list         ap;
         LDAP_CONST char         *fmt_reset;          LDAP_CONST char         *fmt_reset;
           char            *s, **ss;
   #ifdef TMP_SLOTS
         char            *last;          char            *last;
         char            *s, **ss, ***sss;          char ***sss;
         struct berval   ***bv, **bvp, *bval;          ber_tag_t tag;
         ber_int_t       *i;          struct berval ***bv;
         int j;          int j;
   #endif
           struct berval   **bvp, *bval;
           ber_int_t       *i;
         ber_len_t       *l;          ber_len_t       *l;
         ber_tag_t       *t;          ber_tag_t       *t;
         ber_tag_t       rc, tag;          ber_tag_t       rc;
         ber_len_t       len;          ber_len_t       len;
   
         va_start( ap, fmt );          va_start( ap, fmt );
Line 738  ber_scanf ( BerElement *ber, Line 758  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 = *ber->ber_ptr;
                         break;                          break;
   
                 case '{':       /* begin sequence */                  case '{':       /* begin sequence */
Line 755  ber_scanf ( BerElement *ber, Line 776  ber_scanf ( BerElement *ber,
                         if( ber->ber_debug ) {                          if( ber->ber_debug ) {
 #ifdef NEW_LOGGING  #ifdef NEW_LOGGING
                                 LDAP_LOG(( "liblber", LDAP_LEVEL_ERR,                                  LDAP_LOG(( "liblber", LDAP_LEVEL_ERR,
                                            "ber_scanf: unknown fmt %c\n", *fmt ));                                          "ber_scanf: unknown fmt %c\n", *fmt ));
 #else  #else
                                 ber_log_printf( LDAP_DEBUG_ANY, ber->ber_debug,                                  ber_log_printf( LDAP_DEBUG_ANY, ber->ber_debug,
                                         "ber_scanf: unknown fmt %c\n", *fmt );                                          "ber_scanf: unknown fmt %c\n", *fmt );

Removed from v.1.75  
changed lines
  Added in v.1.78


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