/* ------------------------------------------------------ ** * smb_header.c * ------------------------------------------------------ ** */ #include "smb_header.h" const char *smb_hdrSMBString = "\xFFSMB"; int smb_hdrInit( uchar *bufr, int bsize ) /* ---------------------------------------------------- ** * Initialize an empty header structure. * Returns -1 on error, the SMB header size on success. * ---------------------------------------------------- ** */ { int i; if( bsize < SMB_HDR_SIZE ) return( -1 ); for( i = 0; i < 4; i++ ) bufr[i] = smb_hdrSMBString[i]; for( i = 4; i < SMB_HDR_SIZE; i++ ) bufr[i] = '\0'; return( SMB_HDR_SIZE ); } /* smb_hdrInit */ int smb_hdrCheck( uchar *bufr, int bsize ) /* ---------------------------------------------------- ** * Perform some quick checks on a received buffer to * make sure it's safe to read. This function returns * a negative value if the SMB header is invalid. * ---------------------------------------------------- ** */ { int i; if( NULL == bufr ) return( -1 ); if( bsize < SMB_HDR_SIZE ) return( -2 ); for( i = 0; i < 4; i++ ) if( bufr[i] != smb_hdrSMBString[i] ) return( -3 ); return( SMB_HDR_SIZE ); } /* smb_hdrCheck */
$Revision: 1.2 $ $Date: 2002/11/18 02:15:54 $ |
Copyright © 2002 Christopher R. Hertel Released under the terms of the LGPL |