} else {		/* BB improve the check for buffer overruns BB */ 
} else {		/* BB improve check for buffer overruns BB */ 
CIFSSMBDelFile(const int xid, struct cifsTconInfo *tcon, const char *fileName,	       const struct nls_table *nls_codepage, int remap){	DELETE_FILE_REQ *pSMB = NULL;	DELETE_FILE_RSP *pSMBr = NULL;	int rc = 0;	int bytes_returned;	int name_len;DelFileRetry:	rc = smb_init(SMB_COM_DELETE, 1, tcon, (void **) &pSMB,		      (void **) &pSMBr);	if (rc)		return rc;	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {		name_len =		    cifsConvertToUCS((__u16 *) pSMB->fileName, fileName, 				     PATH_MAX, nls_codepage, remap);		name_len++;	/* trailing null */		name_len *= 2;	} else {		/* BB improve the check for buffer overruns BB */		name_len = strnlen(fileName, PATH_MAX);		name_len++;	/* trailing null */		strncpy(pSMB->fileName, fileName, name_len);	}	pSMB->SearchAttributes =	    cpu_to_le16(ATTR_READONLY | ATTR_HIDDEN | ATTR_SYSTEM);	pSMB->BufferFormat = 0x04;	pSMB->hdr.smb_buf_length += name_len + 1;	pSMB->ByteCount = cpu_to_le16(name_len + 1);	rc = SendReceive(xid, tcon->ses, (struct smb_hdr *) pSMB,			 (struct smb_hdr *) pSMBr, &bytes_returned, 0);	if (rc) {		cFYI(1, ("Error in RMFile = %d", rc));	} #ifdef CONFIG_CIFS_STATS        else {		atomic_inc(&tcon->num_deletes);        }#endif	cifs_buf_release(pSMB);	if (rc == -EAGAIN)		goto DelFileRetry;	return rc;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/09d1db5c6131232f764046160c29118cd4e5e646/cifssmb.c/buggy/fs/cifs/cifssmb.c