if (blen == length-2 && !nsCRT::strncmp(line+2, mult->boundary, length-2))
if (blen == length-2 && !strncmp(line+2, mult->boundary, length-2))
MimeMultipart_check_boundary(MimeObject *obj, const char *line, PRInt32 length){  MimeMultipart *mult = (MimeMultipart *) obj;  PRInt32 blen;  PRBool term_p;  if (!mult->boundary ||	  line[0] != '-' ||	  line[1] != '-')	return MimeMultipartBoundaryTypeNone;  /* This is a candidate line to be a boundary.  Check it out... */  blen = strlen(mult->boundary);  term_p = PR_FALSE;  /* strip trailing whitespace (including the newline.) */  while(length > 2 && nsCRT::IsAsciiSpace(line[length-1]))	length--;  /* Could this be a terminating boundary? */  if (length == blen + 4 &&	  line[length-1] == '-' &&	  line[length-2] == '-')	{	  term_p = PR_TRUE;	}  //looks like we have a separator but first, we need to check it's not for one of the part's children.  MimeContainer *cont = (MimeContainer *) obj;  if (cont->nchildren > 0)  {    MimeObject *kid = cont->children[cont->nchildren-1];    if (kid)      if (mime_typep(kid, (MimeObjectClass*) &mimeMultipartClass))      {        //Don't ask the kid to check the boundary if it has already detected a Teminator        MimeMultipart *mult = (MimeMultipart *) kid;        if (mult->state != MimeMultipartEpilogue)          if (MimeMultipart_check_boundary(kid, line, length) != MimeMultipartBoundaryTypeNone)            return MimeMultipartBoundaryTypeNone;      }  }  if (term_p)    length -= 2;  if (blen == length-2 && !nsCRT::strncmp(line+2, mult->boundary, length-2))	  return (term_p			? MimeMultipartBoundaryTypeTerminator			: MimeMultipartBoundaryTypeSeparator);  else	  return MimeMultipartBoundaryTypeNone;}