diff --git a/src/smblib/smblib.c b/src/smblib/smblib.c
index 4c90a467082dadd75d33ef2be2ab746270d56367..508fd8ede6687b1ca34a3f6e57415395a44a3b4b 100644
--- a/src/smblib/smblib.c
+++ b/src/smblib/smblib.c
@@ -1250,7 +1250,7 @@ int SMBCALL smb_addcrc(smb_t* smb, ulong crc)
 		sprintf(smb->last_error,"invalid file length: %ld", length);
 		return(SMB_ERR_FILE_LEN); 
 	}
-	if((buf=(ulong*)MALLOC(smb->status.max_crcs*4))==NULL) {
+	if((buf=(ulong*)MALLOC(length))==NULL) {
 		close(file);
 		sprintf(smb->last_error
 			,"malloc failure of %ld bytes"