diff --git a/src/sbbs3/netmail.cpp b/src/sbbs3/netmail.cpp index 042f4816ea5966cbe7a677a23e3c8bf923fca8c8..2ccfdefece96edbeb971bb6efd8eaf05644cceaa 100644 --- a/src/sbbs3/netmail.cpp +++ b/src/sbbs3/netmail.cpp @@ -1378,6 +1378,15 @@ bool sbbs_t::qnetmail(const char *into, const char *subj, long mode, smb_t* resm offset=smb_allocdat(&smb,length,1); smb_close_da(&smb); + if(offset < 0) { + smb_freemsgdat(&smb,offset,length,1); + smb_unlocksmbhdr(&smb); + smb_close(&smb); + smb_stack(&smb,SMB_STACK_POP); + errormsg(WHERE,ERR_ALLOC,msgpath,length); + return(false); + } + if((instream=fnopen(&file,msgpath,O_RDONLY|O_BINARY))==NULL) { smb_freemsgdat(&smb,offset,length,1); smb_unlocksmbhdr(&smb);