Diff for /libraries/liblber/decode.c between versions 1.33.2.1 and 1.34

version 1.33.2.1, 1999/06/17 17:09:52 version 1.34, 1999/06/18 21:53:07
Line 160  ber_getnint( Line 160  ber_getnint(
         ber_int_t *num,          ber_int_t *num,
         ber_len_t len )          ber_len_t len )
 {  {
         int     diff, sign, i;          unsigned char buf[sizeof(ber_int_t)];
         ber_int_t       netnum;  
         char    *p;  
   
         assert( ber != NULL );          assert( ber != NULL );
         assert( num != NULL );          assert( num != NULL );
Line 179  ber_getnint( Line 177  ber_getnint(
         if ( len > sizeof(ber_int_t) )          if ( len > sizeof(ber_int_t) )
                 return( -1 );                  return( -1 );
   
         netnum = 0;          /* read into the low-order bytes of our buffer */
         diff = sizeof(ber_int_t) - len;          if ( (ber_len_t) ber_read( ber, buf, len ) != len ) {
         /* read into the low-order bytes of netnum */  
         if ( (ber_len_t) ber_read( ber, ((char *) &netnum) + diff, len ) != len )  
                 return( -1 );                  return( -1 );
           }
   
         /* sign extend if necessary */          if( len ) {
         p = (char *) &netnum;                  /* sign extend if necessary */
         sign = (0x80 & *(p+diff) );                  ber_len_t i;
         if ( sign && ((size_t) len < sizeof(ber_int_t)) ) {                  ber_int_t netnum = 0x80 & buf[0] ? -1 : 0;
                 for ( i = 0; i < diff; i++ ) {  
                         *(p+i) = (unsigned char) ~0;                  /* shift in the bytes */
                   for( i=0 ; i<len; i++ ) {
                           netnum = (netnum << 8 ) | buf[i];
                 }                  }
   
                   *num = netnum;
   
           } else {
                   *num = 0;
         }          }
         *num = LBER_INT_NTOH( netnum );  
   
         return( len );          return( len );
 }  }

Removed from v.1.33.2.1  
changed lines
  Added in v.1.34


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