Diff for /libraries/liblber/decode.c between versions 1.1.3.1 and 1.4.10.4

version 1.1.3.1, 1998/08/08 22:43:15 version 1.4.10.4, 1998/09/28 17:27:54
Line 11 Line 11
  * is provided ``as is'' without express or implied warranty.   * is provided ``as is'' without express or implied warranty.
  */   */
   
   #define DISABLE_BRIDGE /* disable LDAP_BRIDGE code */
   #include "portable.h"
   
 #include <stdio.h>  #include <stdio.h>
 #ifdef MACOS  
 #include <stdlib.h>  #ifdef STDC_HEADERS
 #include <stdarg.h>  
 #include "macos.h"  
 #else /* MACOS */  
 #if defined(NeXT) || defined(VMS)  
 #include <stdlib.h>  #include <stdlib.h>
 #else /* next || vms */  
 #include <malloc.h>  
 #endif /* next || vms */  
 #if defined(BC31) || defined(_WIN32)  
 #include <stdarg.h>  #include <stdarg.h>
 #else /* BC31 || _WIN32 */  #else
 #include <varargs.h>  #include <varargs.h>
 #endif /* BC31 || _WIN32 */  #endif
   
   #include <ac/string.h>
   
   #ifdef MACOS
   #include "macos.h"
   #endif /* MACOS */
   
 #include <sys/types.h>  #include <sys/types.h>
 #include <sys/socket.h>  #include <sys/socket.h>
 #include <netinet/in.h>  #include <netinet/in.h>
   
 #ifdef PCNFS  #ifdef PCNFS
 #include <tklib.h>  #include <tklib.h>
 #endif /* PCNFS */  #endif /* PCNFS */
 #endif /* MACOS */  
   
 #if defined( DOS ) || defined( _WIN32 )  #if defined( DOS ) || defined( _WIN32 )
 #include "msdos.h"  #include "msdos.h"
 #endif /* DOS */  #endif /* DOS */
   
 #include <string.h>  
 #include "lber.h"  #include "lber.h"
   
 #ifdef LDAP_DEBUG  #ifdef LDAP_DEBUG
 int     lber_debug;  int     lber_debug;
 #endif  #endif
   
 #ifdef NEEDPROTOS  static int ber_getnint LDAP_P(( BerElement *ber, long *num, int len ));
 static int ber_getnint( BerElement *ber, long *num, int len );  
 #endif /* NEEDPROTOS */  
   
   
 /* return the tag - LBER_DEFAULT returned means trouble */  /* return the tag - LBER_DEFAULT returned means trouble */
 unsigned long  unsigned long
Line 155  ber_getnint( BerElement *ber, long *num, Line 152  ber_getnint( BerElement *ber, long *num,
 {  {
         int     diff, sign, i;          int     diff, sign, i;
         long    netnum;          long    netnum;
           char    *p;
   
         /*          /*
          * The tag and length have already been stripped off.  We should           * The tag and length have already been stripped off.  We should
Line 172  ber_getnint( BerElement *ber, long *num, Line 170  ber_getnint( BerElement *ber, long *num,
         if ( ber_read( ber, ((char *) &netnum) + diff, len ) != len )          if ( ber_read( ber, ((char *) &netnum) + diff, len ) != len )
                 return( -1 );                  return( -1 );
   
         /* sign extend if necessary */          /* sign extend if necessary */
         sign = ((0x80 << ((len - 1) * 8)) & netnum);          p = (char *) &netnum;
         if ( sign && len < sizeof(long) ) {          sign = (0x80 & *(p+diff) );
                 for ( i = sizeof(long) - 1; i > len - 1; i-- ) {          if ( sign && len < sizeof(long) ) {
                         netnum |= (0xffL << (i * 8));                  for ( i = 0; i < diff; i++ ) {
                           *(p+i) = 0xff;
                 }                  }
         }          }
         *num = LBER_NTOHL( netnum );          *num = LBER_NTOHL( netnum );
Line 382  ber_next_element( BerElement *ber, unsig Line 381  ber_next_element( BerElement *ber, unsig
   
 /* VARARGS */  /* VARARGS */
 unsigned long  unsigned long
 ber_scanf(  ber_scanf
 #if defined( MACOS ) || defined( BC31 ) || defined( _WIN32 )  #ifdef STDC_HEADERS
         BerElement *ber, char *fmt, ... )          ( BerElement *ber, char *fmt, ... )
 #else  #else
         va_alist )          ( va_alist )
 va_dcl  va_dcl
 #endif  #endif
 {  {
         va_list         ap;          va_list         ap;
 #if !defined( MACOS ) && !defined( BC31 ) && !defined( _WIN32 )  #ifndef STDC_HEADERS
         BerElement      *ber;          BerElement      *ber;
         char            *fmt;          char            *fmt;
 #endif  #endif
Line 402  va_dcl Line 401  va_dcl
         long            *l, rc, tag;          long            *l, rc, tag;
         unsigned long   len;          unsigned long   len;
   
 #if defined( MACOS ) || defined( BC31 ) || defined( _WIN32 )  #if STDC_HEADERS
         va_start( ap, fmt );          va_start( ap, fmt );
 #else  #else
         va_start( ap );          va_start( ap );
Line 536  va_dcl Line 535  va_dcl
                         break;                          break;
   
                 default:                  default:
 #ifndef NO_USERINTERFACE  #ifdef LDAP_LIBUI
                         fprintf( stderr, "unknown fmt %c\n", *fmt );                          fprintf( stderr, "unknown fmt %c\n", *fmt );
 #endif /* NO_USERINTERFACE */  #endif /* LDAP_LIBUI */
                         rc = LBER_DEFAULT;                          rc = LBER_DEFAULT;
                         break;                          break;
                 }                  }

Removed from v.1.1.3.1  
changed lines
  Added in v.1.4.10.4


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